当前位置: 首页 > news >正文

asp网站例子宁夏交通建设有限公司网站

asp网站例子,宁夏交通建设有限公司网站,做网站个体户执照,网站替换图片怎么做rememberme多久我在“ 向Jiwhiz博客添加社交登录”一文中提到#xff0c;RememberMe功能不适用于Spring Social Security。 好吧#xff0c;这是因为该应用程序现在不通过用户名和密码对用户进行身份验证#xff0c;并且完全依靠社交网站#xff08;例如Google#xff0c;… rememberme多久 我在“ 向Jiwhiz博客添加社交登录”一文中提到RememberMe功能不适用于Spring Social Security。 好吧这是因为该应用程序现在不通过用户名和密码对用户进行身份验证并且完全依靠社交网站例如GoogleFacebook和Twitter来完成此工作。 Spring Security的默认配置无法处理这种情况。 Spring Security可能是所有Spring Portfolio项目中最复杂的软件。 为了使一个非常简单的Web应用程序具有安全性大约需要正确设置10个过滤器。 为了简化应用程序开发Spring Security从2.0版开始提供名称空间配置以自动将所有必需的组件一起设置因此开发人员无需弄清楚细节。 除非您的应用程序与传统应用程序不同否则它对大多数Web应用程序都非常有效。 将网站登录过程从用户名密码身份验证更改为没有密码的Spring Social Security之后 “记住我”的旧配置不再起作用。 Spring Security参考文档几乎没有关于Remember-Me Authentication的解释所以我买了Spring Security项目负责人Rob Winch编写的书Spring Security 3.1 。 这本书整整一章都在讨论“记住我”服务它对我在Spring Security中如何理解记住我的工作大有帮助。 读完本书后我觉得阅读Spring Security源代码要容易得多并且阅读源代码总是很有趣的。 由于我没有存储用户帐户的密码因此默认的TokenBasedRememberMeServices无法与我的应用程序一起使用并且我也不想创建自己的RememberMeServices-太多的工作。 幸运的是还有另一种持久令牌方法 即将令牌存储到数据库中并比较cookie中的令牌。 我需要的是使用PersistentTokenRepository在我的应用程序中自定义PersistentTokenBasedRememberMeServices来存储令牌。 Spring Security提供了PersistentTokenRepository的JDBC实现我发现在阅读源代码之后编写自己的MongoDB实现非常简单。 第一步是将PersistentRememberMeToken数据存储到MongoDB。 我需要为其添加一个域实体类 Document(collection RememberMeToken) public class RememberMeToken extends BaseEntity{private String username;Indexedprivate String series;private String tokenValue;private Date date;... // getter/setter omittedpublic RememberMeToken(){}public RememberMeToken(PersistentRememberMeToken token){this.series token.getSeries();this.username token.getUsername();this.tokenValue token.getTokenValue();this.date token.getDate();}} 接下来使用Spring Data为实体添加一个存储库 public interface RememberMeTokenRepository extends MongoRepositoryRememberMeToken, String{RememberMeToken findBySeries(String series);ListRememberMeToken findByUsername(String username); } 然后唯一相对繁重的编码是为MongoDB实现PersistentTokenRepository public class MongoPersistentTokenRepositoryImpl implements PersistentTokenRepository {private final RememberMeTokenRepository rememberMeTokenRepository;public MongoPersistentTokenRepositoryImpl(RememberMeTokenRepository rememberMeTokenRepository){this.rememberMeTokenRepository rememberMeTokenRepository;}Overridepublic void createNewToken(PersistentRememberMeToken token) {RememberMeToken newToken new RememberMeToken(token);this.rememberMeTokenRepository.save(newToken);}Overridepublic void updateToken(String series, String tokenValue, Date lastUsed) {RememberMeToken token this.rememberMeTokenRepository.findBySeries(series);if (token ! null){token.setTokenValue(tokenValue);token.setDate(lastUsed);this.rememberMeTokenRepository.save(token);}}Overridepublic PersistentRememberMeToken getTokenForSeries(String seriesId) {RememberMeToken token this.rememberMeTokenRepository.findBySeries(seriesId);return new PersistentRememberMeToken(token.getUsername(), token.getSeries(), token.getTokenValue(), token.getDate());}Overridepublic void removeUserTokens(String username) {ListRememberMeToken tokens this.rememberMeTokenRepository.findByUsername(username);this.rememberMeTokenRepository.delete(tokens);} } 剩下的工作就是所有配置。 我需要在Java配置类中将它们连接在一起 Configuration public class SocialAndSecurityConfig {Injectprivate Environment environment;Injectprivate AccountService accountService;Injectprivate AuthenticationManager authenticationManager;Injectprivate RememberMeTokenRepository rememberMeTokenRepository;...Beanpublic RememberMeServices rememberMeServices(){PersistentTokenBasedRememberMeServices rememberMeServices new PersistentTokenBasedRememberMeServices(environment.getProperty(application.key), accountService, persistentTokenRepository());rememberMeServices.setAlwaysRemember(true);return rememberMeServices;}Bean public RememberMeAuthenticationProvider rememberMeAuthenticationProvider(){RememberMeAuthenticationProvider rememberMeAuthenticationProvider new RememberMeAuthenticationProvider(environment.getProperty(application.key));return rememberMeAuthenticationProvider; }Bean public PersistentTokenRepository persistentTokenRepository() {return new MongoPersistentTokenRepositoryImpl(rememberMeTokenRepository);} } 最后一步是将“记住我”服务添加到安全性xml配置文件中这是xml配置的最后一部分我们现在无法消除它。 更新一个新项目Spring Security Java Config将用Spring Security中的Java config替换xml配置。 ?xml version1.0 encodingUTF-8? beans:beans xmlnshttp://www.springframework.org/schema/securityxmlns:beanshttp://www.springframework.org/schema/beansxmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsdhttp://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security-3.1.xsdhttp use-expressionstrue entry-point-refsocialAuthenticationEntryPointcustom-filter positionPRE_AUTH_FILTER refsocialAuthenticationFilter /logout logout-url/signout delete-cookiesJSESSIONID /remember-me services-refrememberMeServices /!-- Configure these elements to secure URIs in your application --intercept-url pattern/favicon.ico accesspermitAll /intercept-url pattern/robots.txt accesspermitAll /intercept-url pattern/resources/** accesspermitAll /intercept-url pattern/signin accesspermitAllrequires-channel#{environment[application.secureChannel]} /intercept-url pattern/signin/* accesspermitAllrequires-channel#{environment[application.secureChannel]} /intercept-url pattern/presentation/** accesshasRole(ROLE_USER)requires-channel#{environment[application.secureChannel]} /intercept-url pattern/myAccount/** accesshasRole(ROLE_USER)requires-channel#{environment[application.secureChannel]} /intercept-url pattern/myPost/** accesshasRole(ROLE_AUTHOR)requires-channel#{environment[application.secureChannel]} /intercept-url pattern/admin/** accesshasRole(ROLE_ADMIN)requires-channel#{environment[application.secureChannel]} /intercept-url pattern/** accesspermitAll //httpauthentication-manager aliasauthenticationManagerauthentication-provider refsocialAuthenticationProvider /authentication-provider refrememberMeAuthenticationProvider //authentication-manager/beans:beans 这就是向我的博客应用程序添加“记住我的身份验证”的全部方法。 现在您可以通过Google / Facebook / Twitter登录到我的网站该网站将在接下来的两周内始终记住您。 参考来自Jiwhiz博客的JCG合作伙伴 Yuan Ji 添加了Spring Security的RememberMe身份验证 。 翻译自: https://www.javacodegeeks.com/2013/03/add-rememberme-authentication-with-spring-security.htmlrememberme多久
http://www.sadfv.cn/news/206815/

相关文章:

  • 无锡阿凡达网站建设怎么建立本地网站
  • 手机搭建电脑做的网站做网站需要什么知识
  • 单仁做的网站网站管理建设需进一步加强
  • 哪些网站百度收录快上海互联网推广找哪家
  • 制作网站谁家做的好自己做下载类网站
  • 超级链接网站模板用文件传输协议登录网站
  • 网站策划方案详解佛山企业网站seo
  • 卫计局网站建设工作总结国内重要新闻
  • 用ps如何做模板下载网站建设企业银行电脑版怎么下载
  • 东大桥网站建设tint wordpress
  • 零食电子商务网站建设策划书用邮箱地址做网站域名好吗
  • c 可以做网站嘛网上哪里有卖嗅探器
  • 钢材贸易网站建设电商物流建设网站过程
  • 简述网站建设的概念怎样弄微信公众号
  • cnzz网站建设wordpress 调用最新评论
  • 南京网站设计优化公司wordpress页面链接404
  • 重点建设学科网站ppt
  • 长沙企业如何建网站个人网页注册
  • 在哪做网站不要钱机械技术支持 东莞网站建设
  • wordpress站名在哪改企业网站ps模板
  • 做3d兼职网站公司主页图片
  • 建设厅网站上企业登录东营seo网站推广费用
  • 深圳教育网站建设清洁设备网站模版
  • 建设互联网教育网站河北省网站建设.
  • 专业网站设计公司婚庆公司网站的设计与实现
  • 建设主题网站的顺序是什么网站开发是怎么回事
  • 金华网站建设公司哪家好前端怎么做自己的博客网站
  • 网站做一个要多少钱集团网站建设
  • 网站开发资质网络产品推广方案范文
  • app定制开发价格济南网站建设yigeseo