javascript
Spring Security 中取得 RememberMe 的 cookie 值
为什么80%的码农都做不了架构师?>>>
Spring Security 中的 RememberMe 对应的 cookie 名称是可配置的——相信一般情况下大家也不会使用那个默认的值吧。不过既然是可配置的,我们一般就尽量不在程序中直接写这个名称,想取得此名称对应的 cookie 值就得做一些扩展了。
java 代码如下,本质很简单,就是将 protected 方法改为 public(SS 有点多此一举)。
<pre> /** * 将 extractRememberMeCookie 方法由父类的 protected 改为 public,并在其它地方取得 RememberMe 的 * cookie 内容。 * * 例如用来判断请求中是否存在 RememberMe 信息。 * * @author wjx * */ public class CustomTokenBasedRememberMeServices extends TokenBasedRememberMeServices { /** * 可以通过构造函数传入 key 和 service * * @param key * @param userDetailsService */ public CustomTokenBasedRememberMeServices(String key, UserDetailsService userDetailsService) { super(key, userDetailsService); } @Override public String extractRememberMeCookie(HttpServletRequest request) { return super.extractRememberMeCookie(request); } @Override public String getCookieName() { return super.getCookieName(); } } </pre>
然后在 xml 中做如下配置即可:
<beans:bean id="rememberMeServices"class="com.someok.module.admin.security.CustomTokenBasedRememberMeServices"><beans:constructor-arg index="0"value="XXXXXXXXX" /><beans:constructor-arg index="1"ref="userDetailsService" /><beans:property name="cookieName" value="REMEMBER_ME" /><!-- 30 days --><beans:property name="tokenValiditySeconds" value="2592000" /> </beans:bean>在 service 中调用的时候:
@Autowired CustomTokenBasedRememberMeServices rememberMeServices;String value = rememberMeServices.extractRememberMeCookie(request);Over!!!
转载于:https://my.oschina.net/someok/blog/283686
总结
以上是生活随笔为你收集整理的Spring Security 中取得 RememberMe 的 cookie 值的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: 程序语言的奥妙:算法解读 ——读书笔
- 下一篇: Spring MVC Rest 学习 一