关于Spring security+CAS(一点收获)
接触的一个项目,用户认证、授权采用的是Spring security+CAS实现的。之前一直没认真看过。今天涉及到它们,在此总结下(收获到的):
需求是:登陆成功后要进行些额外的比如登陆日志的记录等。
所以就着重看SS中关于登陆成功后的服务,通过一个下午的网上query,终于点眉目。在form-login中添加authentication-success-handler-ref,在authentication-success-handler实现AuthenticationSuccessHandler的onAuthenticationSuccess方法,并在该方法中实现相关业务逻辑。
按理说有了这些就可以大功告成了,不过后来发现使用这个类又引起了另外的问题:原本SS框架下,用户进行需要登录权限的操作的时候会记录目标url,登录成功后会重定向到目标url去。但是现在我在onAuthenticationSuccess方法中只能指定默认的几个url跳转,这样明显是不合适的。
继续上网query,之后看到一篇博文【http://blog.csdn.net/silence1214/article/details/7947872】(连接可能会失效)提醒了我,用户登录前的目标url是被SS存在了session中,并且KEY值为:【SPRING_SECURITY_SAVED_REQUEST】SS的版本为3.+。
知道这个后,问题就好解决了,在onAuthenticationSuccess方法处理完相关的业务逻辑后,获取session中的目标url进行重定向。注:同时也给个默认的url(首页),当逻辑处理出现异常可以进行跳转首页处理。
over.........
上一篇: Ant使用属性值