论坛首页 Java企业应用论坛

Spring Security 2 配置精讲

浏览 171544 次
该帖已经被评为精华帖
作者 正文
   发表时间:2009-11-13  
海风308 写道
请问楼主,这样修改User类,是不是侵入性太高了?我觉得PO应该尽量保持干净。
还有你实现InitializingBean里的afterPropertiesSet()有什么用意?


如果仅用Spring Security做用户的认证,并且Spring Security默认的功能能够满足你的要求,你是不需要像我这样改User类的。

不过既然你用了Spring Security做你的权限管理,又要不入侵,请你来教大家怎么做。
0 请登录后投票
   发表时间:2009-11-13  
downpour 写道
海风308 写道
请问楼主,这样修改User类,是不是侵入性太高了?我觉得PO应该尽量保持干净。
还有你实现InitializingBean里的afterPropertiesSet()有什么用意?


如果仅用Spring Security做用户的认证,并且Spring Security默认的功能能够满足你的要求,你是不需要像我这样改User类的。

不过既然你用了Spring Security做你的权限管理,又要不入侵,请你来教大家怎么做。


不好意思楼主,我没有别的意思,我只是有这个想法而已,我也是刚学SpringSecurity。还有,你还没告诉我你
InitializingBean里的afterPropertiesSet()有什么用意呢,这个方法里的内容有点看不懂。
再有一个问题,就是我按照你的做法,只不过我的<http>中没有配置资源和对应的权限,而是从数据库度的。我确认数据没问题,因为之前用其他例子的JDBC方式实验过,而用楼主的方法读取资源和对应权限时,访问项目地址总是能够进入index.jsp页面,而这个页面的权限最少要登录才对。请问是什么原因。我跟踪了下断点,
public ConfigAttributeDefinition getAttributes(Object filter)返回null。
0 请登录后投票
   发表时间:2009-11-19   最后修改:2009-11-19
按楼主的配置,已经成功实现了数据配置权限,谢谢指点,但是还有一个问题请教,
我在context安全文件中配置了两个custom filter,
<beans:bean id="myAuthenticationFilter" class="com.myframe.security.web.servlet.MyAuthenticationProcessingFilter"> 
        <custom-filter position="AUTHENTICATION_PROCESSING_FILTER"/>
        <beans:property name="authenticationManager" ref="authenticationManager" />
        <beans:property name="authenticationFailureUrl" value="/error.jsp" />
        <beans:property name="defaultTargetUrl" value="/workbench.do"/>
        <beans:property name="securityManager" ref="securityManager"/>
   </beans:bean>
   <beans:bean id="myLogoutFilter" class="com.myframe.security.web.servlet.MyLogoutFilter">
        <custom-filter position="LOGOUT_FILTER"/>
        <beans:constructor-arg value="/logout.do"/>
        <beans:constructor-arg>
           <beans:list>
             <beans:bean class="org.springframework.security.ui.logout.SecurityContextLogoutHandler" />
           </beans:list>
        </beans:constructor-arg>
   </beans:bean>
可是为什么登陆时会找到“LOGOUT_FILTER”而不是“AUTHENTICATION_PROCESSING_FILTER”
0 请登录后投票
   发表时间:2009-11-20  
Spring security确实比以前的acegi精简了很多,只是还有一个问题。

我之前开发过一个项目,是一个学术会议的注册管理系统,客户的要求是前后台完全分离。前台供会议参加者注册,登陆,提交修改论文及相关信息等,而后台是对各种信息的管理。前后台不是同一个登陆页面,而且两者的session互不影响,也就是说同一个浏览器下,用户登陆前台页面后,再转到后台的URL时,还需要用管理员的帐户登陆后台。

这个应该属于Multiple Login Page的问题,而这个模型的使用非常普遍,不过我仅在http://forum.springsource.org/showthread.php?t=77030上找到了一些解决的办法。这个办法通过两个filter-chain入口将入口分离,并针对每个入口分别使用不同的配置,似乎还要像之前acegi的配置一样繁琐,有没有更简单的实现方法。
0 请登录后投票
   发表时间:2009-12-03  
为什么下载的工程里面没有jar呢 还要自己去下载配置 多麻烦啊···
0 请登录后投票
   发表时间:2009-12-25  
楼主这篇文章真是讲得太好了。网上一堆文章都很差,看了云里雾里的,看了这篇后豁然开朗……
0 请登录后投票
   发表时间:2009-12-31  
什么时候能够升级到ss3?
0 请登录后投票
   发表时间:2010-01-12  
我照着这个配置,其他都好,就是用SecurityUserHolder 取不到当前用户,
打印:SecurityContextHolder.getContext()为:
org.springframework.security.context.SecurityContextImpl@ffffffff: Null authentication,
再往下取就是Null了。
我没配置缓存,其他都几乎一样,请问是缓存的原因吗?还是别的原因?
0 请登录后投票
   发表时间:2010-01-13  
楼上我提的这个问题困扰了好几天,今天无意中解决了。
就是在web.xml文件中的spring security部分的配置文件放到struts和spring,Hibernate等配置文件前面就好了。原来我放在最后面。真服了!
0 请登录后投票
   发表时间:2010-01-20  
受益匪浅。比较专业,而且很详细。
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics