`
zpball
  • 浏览: 919329 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

spring安全框架应用

阅读更多
第一步
将spring-security-core-2.0.3.jar和spring-security-taglibs-2.0.3.jar包加入工程,修改原有的jsp代码,将登录的验证放到action中处理,更改index.jsp的form提交的action代码。
文件路径:ezg2.7\WebRoot\index.jsp


Html代码
<!--<form name="loginActionForm" id="loginActionForm" method="post" action="[color=red]login.do[/color]" target="_parent" onsubmit="return login()">-->  
<form name="loginActionForm" id="loginActionForm" method="post" action="[color=red]j_spring_security_check[/color]"" target="_parent" onsubmit="return login()">    
<!--<form name="loginActionForm" id="loginActionForm" method="post" action="[color=red]login.do[/color]" target="_parent" onsubmit="return login()">-->
<form name="loginActionForm" id="loginActionForm" method="post" action="[color=red]j_spring_security_check[/color]"" target="_parent" onsubmit="return login()">	




第二步
新建TAB_MOA_MODULE表的hibernate映射文件和pojo文件,映射文件加入hibernate配置文件
文件路径:
ezg2.7\src\com\srt\sdp\security\model\TabMoaModule.hbm.xml
ezg2.7\src\com\srt\sdp\security\model\TabMoaModule.java
ezg2.7\src\conf\hibernate.cfg.xml

Xml代码
<mapping resource="com/srt/sdp/security/model/TabMoaModule.hbm.xml" />  
<mapping resource="com/srt/sdp/security/model/TabMoaModule.hbm.xml" />



第三步
修改资源DAO对象,从TAB_MOA_MODULE表获取资源。修改映射文件,加入sql语句
文件路径:
ezg2.7\src\com\srt\sdp\security\dao\hibernate\ResourceDao.java
ezg2.7\src\com\srt\sdp\security\model\TabMoaModule.hbm.xml

Xml代码
<query name="getResources">  
<![CDATA[FROM TabMoaModule]>  
</query>  
<query name="getResources">
<![CDATA[FROM TabMoaModule]>
</query>



public List<TabMoaModule> getResources() {   
       return getSession().getNamedQuery("getResources").list();//123   
   }  
public List<TabMoaModule> getResources() {
		return getSession().getNamedQuery("getResources").list();//123
	}




第四步
修改安全框架初始化加载资源的代码,将权限code和url放入spring安全框架
文件路径:ezg2.7\src\com\srt\sdp\security\bean\ResourceDetailsService.java


List<TabMoaModule> resources = resourceDao.getResources();   
       for (TabMoaModule resource : resources) {   
          String authorityCode = resource.getPerm_code();   
            List<String> urlList = new ArrayList<String>();   
           // 读取资源里面的url   
            if (resource.getModuleUrl() != null) {   
                urlList.add(resource.getModuleUrl());   
            }   
  
            for (String url : urlList) {   
                if(!requestMap.containsKey(url)){   
                  requestMap.put(url, authorityCode);   
                }   
            }   
       }   
        
List<TabMoaModule> resources = resourceDao.getResources();
		for (TabMoaModule resource : resources) {
			String authorityCode = resource.getPerm_code();
			List<String> urlList = new ArrayList<String>();

			// 读取资源里面的url
			if (resource.getModuleUrl() != null) {
				urlList.add(resource.getModuleUrl());
			}

			for (String url : urlList) {
				if(!requestMap.containsKey(url)){
					requestMap.put(url, authorityCode);
				}
			}
		}


第五步
在spring配置文件中配置sec:authentication-provider节点,用自己的类实现spring的验证接口,要在此类中加载登陆用户的权限。
文件路径:
ezg2.7\src\conf\applicationContext-security.xml
ezg2.7\src\com\srt\sdp\security\bean\UserDetailsService.java

<bean id="userDetailsService" class="com.srt.sdp.security.bean.UserDetailsService"/>  
<bean id="userDetailsService" class="com.srt.sdp.security.bean.UserDetailsService"/>




第四步
在调用了spring接口之后,将请求转交给原有的登录action处理

第五步
对安全框架进行改造,继承spring的权限拦截器AbstractSecurityInterceptor,初始化ObjectDefinitionSource对象,为安全验证提供权限资源。并将此拦截器加入安全框架拦截器链中。

第六步
自定义决策者,根据用户权限进行逻辑判断,决定用户是否能访问相应资源。这部分的资料可以参考[url]http://www.360doc.com/content/10/0903/18/2560742_50955108.shtml [/url]
分享到:
评论

相关推荐

    spring 安全框架例子

    Spring安全框架是Spring生态系统中的重要组成部分,主要用于处理应用程序的安全需求,包括身份验证、授权和访问控制等。在本文中,我们将深入探讨Spring安全框架的基本概念、核心组件以及如何在实际项目中实现安全...

    Spring框架应用案例

    7. **Spring Security**:Spring的认证和授权框架,用于实现复杂的权限控制,如登录验证、角色权限分配等,保护Web应用的安全。 8. **Spring Batch**:针对批量处理任务的设计,提供了一套完整的解决方案,包括读取...

    现基于Spring框架应用的权限控制系统

    本文将详细讨论如何在基于Spring框架的应用中实现权限控制系统,重点介绍Acegi安全框架的使用及其在权限管控方面的解决方案。 首先,我们要了解Spring框架的核心特点。Spring框架通过控制反转(IoC)和面向切面编程...

    Spring shiro安全框架介绍

    ### Spring Shiro安全框架概述 #### 一、Spring Shiro安全框架简介 Spring Shiro是将Shiro安全框架与Spring框架结合使用的一种模式。Shiro是一个强大且灵活的开源安全框架,提供了认证、授权、加密和会话管理等功能...

    Spring高级框架课程笔记.pdf

    * 在 Spring 框架中,AOP 是一个核心组件,提供了对横切关注点的支持,例如安全检查、日志记录、事务管理等。 四、Spring MVC * Spring MVC 是一个基于 Java 的 Web 应用程序框架,提供了一个松散耦合的架构,帮助...

    Spring框架开发参考中文手册

    Spring Security是Spring生态系统中的安全框架,用于实现身份验证和授权。它提供了细粒度的访问控制,可以保护Web应用程序免受常见攻击。 九、测试 Spring Test模块提供了测试Spring应用程序的工具,包括单元测试和...

    Spring Boot应用开发框架 v2.7.17.zip

    Spring Boot是Java领域的一款热门应用开发框架,它简化了基于Spring的应用程序的初始设置和配置。这个名为"Spring Boot应用开发框架 v2.7.17.zip"的压缩包包含了该版本的源码和相关文档,是学习和开发基于Spring ...

    使用Acegi作为基于Spring框架的WEB应用的安全框架

    Acegi Security,现已被Spring ...结合"acegi-sample.war"和"实战Acegi:使用Acegi作为基于Spring框架的WEB应用的安全框架.pdf",开发者可以更好地理解和掌握Acegi Security的使用方法,从而提升Web应用的安全性。

    Java Spring 的框架简介外文文献加翻译

    通过控制反转、面向切面编程、数据访问支持、Web开发框架和安全解决方案,Spring 构建了完整的应用程序开发生态系统,极大地提高了开发效率和代码质量。对于想要学习和掌握Java企业级开发的人来说,深入理解Spring...

    Spring框架基础总结

    4. **AOP技术**:Spring框架集成了AOP技术,使得诸如权限拦截、运行时监控等功能的实现变得异常简单,进一步增强了应用程序的功能性和安全性。 5. **辅助类支持**:Spring框架提供了一系列辅助类,可以帮助开发者...

    Spring框架基础压缩包

    Spring Security是一个强大的安全框架,提供了身份验证、授权、CSRF防护等功能,保护Web应用免受攻击。 在"Spring_Project_1"这个压缩包中,可能包含了Spring框架的基础示例项目,包括配置文件、源代码、测试用例等...

    spring4框架系列[ 1 ]

    Spring框架是Java开发中的核心组件,它为构建企业级应用提供了全面的解决方案。Spring4作为其重要的一个版本,引入了许多新特性和优化,使得开发者能够更高效地进行开发。在这个"Spring4框架系列[ 1 ]"中,我们将...

    Spring框架开发手册

    Spring Security是一个功能强大且可高度定制的安全框架,适用于Java应用程序。 随着Spring Boot的推出,它进一步简化了基于Spring的应用的配置和部署。Spring Boot提供了许多开箱即用的自动配置,大大提高了开发...

    android的spring框架

    在Android开发中,Spring框架可能并不像在Java服务器端那样被广泛熟知,但它确实为移动应用提供了一套强大的工具集。Spring for Android是Spring.io针对Android平台推出的一个框架,旨在帮助开发者构建高质量、可...

    java spring框架学习资料 pdf

    Spring Security则是Spring生态中的安全组件,提供身份验证和授权服务,保护你的应用程序免受潜在的安全威胁。 总的来说,这份《Java Spring框架学习资料 pdf》是全面了解和精通Spring框架的宝贵资源。无论你是初学...

    用Acegi作为基于Spring框架的WEB应用的安全框架

    Acegi Security是Spring框架早期的一个安全模块,后来发展成为Spring Security,是Java Web应用程序中广泛使用的安全框架。本文将深入探讨如何将Acegi(或Spring Security)集成到基于Spring的Web应用中,以实现强大...

    spring框架学习笔记

    Spring Security是Spring生态系统中的安全框架,提供身份验证、授权和会话管理等功能,用于保护Web应用和REST服务的安全。 九、Spring Batch Spring Batch是Spring提供的批处理框架,适用于处理大量数据的场景。它...

Global site tag (gtag.js) - Google Analytics