javascript
Spring Security 中取得 RememberMe 的 cookie 值
為什么80%的碼農(nóng)都做不了架構(gòu)師?>>> ??
Spring Security 中的 RememberMe 對應(yīng)的 cookie 名稱是可配置的——相信一般情況下大家也不會使用那個默認的值吧。不過既然是可配置的,我們一般就盡量不在程序中直接寫這個名稱,想取得此名稱對應(yīng)的 cookie 值就得做一些擴展了。
java 代碼如下,本質(zhì)很簡單,就是將 protected 方法改為 public(SS 有點多此一舉)。
<pre> /** * 將 extractRememberMeCookie 方法由父類的 protected 改為 public,并在其它地方取得 RememberMe 的 * cookie 內(nèi)容。 * * 例如用來判斷請求中是否存在 RememberMe 信息。 * * @author wjx * */ public class CustomTokenBasedRememberMeServices extends TokenBasedRememberMeServices { /** * 可以通過構(gòu)造函數(shù)傳入 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 中調(diào)用的時候:
@Autowired CustomTokenBasedRememberMeServices rememberMeServices;String value = rememberMeServices.extractRememberMeCookie(request);Over!!!
轉(zhuǎn)載于:https://my.oschina.net/someok/blog/283686
總結(jié)
以上是生活随笔為你收集整理的Spring Security 中取得 RememberMe 的 cookie 值的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 程序语言的奥妙:算法解读 ——读书笔
- 下一篇: DevExpress GridContr