Spring Security 中取得 RememberMe 的 cookie 值

为什么80%的码农都做不了架构师?>>>   hot3.png

Spring Security 中的 RememberMe 对应的 cookie 名称是可配置的——相信一般情况下大家也不会使用那个默认的值吧。不过既然是可配置的,我们一般就尽量不在程序中直接写这个名称,想取得此名称对应的 cookie 值就得做一些扩展了。

java 代码如下,本质很简单,就是将 protected 方法改为 public(SS 有点多此一举)。

 /** * 将 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(); } } 

然后在 xml 中做如下配置即可:


	
	

	
	
	

在 service 中调用的时候:

@Autowired
CustomTokenBasedRememberMeServices rememberMeServices;

String value = rememberMeServices.extractRememberMeCookie(request);

Over!!!

转载于:https://my.oschina.net/someok/blog/283686

你可能感兴趣的:(java)