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

社群营销的具体方法放心网站推广优化咨询

社群营销的具体方法,放心网站推广优化咨询,怎样免费设计网站建设,房产备案信息查询系统官网文章目录前言解决过程解决总结前言 前面基础的登录,权限验证等都已经完成了,现在想实现记住密码的操作,按网上博客来实现了一翻,却总是失败,token并没有存储到persistent_logins表。 解决过程 经过调试发现是因为当登…

文章目录

  • 前言
  • 解决过程
  • 解决
  • 总结


前言

前面基础的登录,权限验证等都已经完成了,现在想实现记住密码的操作,按网上博客来实现了一翻,却总是失败,token并没有存储到persistent_logins表。

解决过程

经过调试发现是因为当登录成功的时候,rememberMeServices执行的方法是NullRememberMeServices下面的:
在这里插入图片描述

在这里插入图片描述
可以看到它执行了NullRememberMeServices下面的方法。
然后查看另外一个实现类下面的代码AbstractRememberMeServices,可以看到它下面是有把token存储到数据库的流程的。并且,网上的一些教程,上面放出的代码,也是跑的AbstractRememberMeServices下面的。
下面是源码:
在这里插入图片描述
因为我们要把token存储到数据库,所以,选第一个实现类PersistentTokenBasedRememberMeServices
在这里插入图片描述
下面就是存储的代码了
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

所以,接下来,就该想办法怎么跑这个实现类了。

解决

重写successfulAuthentication方法

/*** 重写 successfulAuthentication* 如果不重新设置setRememberMeServices方法,则会默认调用NullRememberMeServices下面的空方法** @param request* @param response* @param chain* @param authResult* @throws IOException* @throws ServletException*/
@Override
protected void successfulAuthentication(HttpServletRequest request, HttpServletResponse response, FilterChain chain, Authentication authResult) throws IOException, ServletException {PersistentTokenBasedRememberMeServices rememberMe = new PersistentTokenBasedRememberMeServices("KEY", myUserDetailService, persistentTokenRepository);// 重新设置remember-me参数keyrememberMe.setParameter("rememberMe");// 重新设置rememberMeServices实现类this.setRememberMeServices(rememberMe);super.successfulAuthentication(request, response, chain, authResult);
}

这里面有2个点。

  1. 当前这个方法是重写在哪个类下面
    我这个因为是前后端分离的,所以重写了这个过滤器。里面有重写了attemptAuthentication方法,对json做了处理。
    在这里插入图片描述

  2. 方法里面的参数有哪些,怎么来的
    主要是这行代码:
    key,目前还不知道有什么用,因为还没做到这块;(key的作用)
    myUserDetailService,就是登陆用的service,这个应该都有的;
    persistentTokenRepository,存储token的一个bean,代码放在下面,这个百度也可以搜到的。

     PersistentTokenBasedRememberMeServices rememberMe = new PersistentTokenBasedRememberMeServices("KEY", myUserDetailService, persistentTokenRepository)
    

    persistentTokenRepository代码

    /*** token持久化到数据库* @return*/
    @Bean
    public PersistentTokenRepository persistentTokenRepository() {JdbcTokenRepositoryImpl jdbcTokenRepository = new JdbcTokenRepositoryImpl();jdbcTokenRepository.setDataSource(dataSource);jdbcTokenRepository.setCreateTableOnStartup(false);return jdbcTokenRepository;
    }
    

总结

就这些了,这些都是在已经实现了登录的基础上加的。
后面还有个问题,就是这理虽然已经重写设置了rememberMe(默认是remember-me,通过调试源码可以看到),但是因为里面通过request.getParameter获取的,所以里面获取不到。
截图:
在这里插入图片描述
如果想要临时通过验证,测试存储token到数据库的效果,那么可以先把this.alwaysRemember设置为true,然后子再进行测试。
在这里插入图片描述
在这里插入图片描述
验证通过,存储token
在这里插入图片描述
在这里插入图片描述
request获取不到rememberMe的问题:
转载自:https://blog.csdn.net/liukangjie520/article/details/111617244

其实和上面的处理思路一样,也是继承类,重写一下就成了。

public class MyPersistentTokenBasedRememberMeServices extends PersistentTokenBasedRememberMeServices {private boolean alwaysRemember;@Overridepublic void setAlwaysRemember(boolean alwaysRemember) {this.alwaysRemember = alwaysRemember;}@Overrideprotected boolean rememberMeRequested(HttpServletRequest request, String parameter) {if (alwaysRemember) {return true;}// 判断请求是否为JSONif (request != null&& request.getMethod().equalsIgnoreCase("POST")&& request.getContentType() != null&& (request.getContentType().equalsIgnoreCase(MediaType.APPLICATION_JSON_VALUE) || request.getContentType().equalsIgnoreCase(MediaType.APPLICATION_JSON_VALUE))) {Boolean rememberMe = (Boolean) request.getAttribute("rememberMe");if (rememberMe) {return true;}}// 否则调用原本的自我记住功能return super.rememberMeRequested(request, parameter);}public MyPersistentTokenBasedRememberMeServices(String key, UserDetailsService userDetailsService, PersistentTokenRepository jdbcTokenRepositoryImpl) {super(key, userDetailsService, jdbcTokenRepositoryImpl);}
}
http://www.lbrq.cn/news/2803987.html

相关文章:

  • 可靠的网站建设案例社群营销策略有哪些
  • 网页源代码看答案怎么优化推广自己的网站
  • 网站备案登录密码找回北大青鸟培训机构靠谱吗
  • 360 网站备案百度收录哪些平台比较好
  • a站和b站的区别熊猫关键词工具官网
  • 北京网站制作武汉加盟
  • 建立个人网站用虚拟主机电商网站设计论文
  • 做wordpress 主题下载站精准营销方式有哪些
  • 微信与wordpress汽车seo是什么意思
  • 信息科技有限公司网站建设如何进行网络推广营销
  • 留言网站建设旺道seo优化
  • 猎头网站 做猎头的流程网站关键词推广价格
  • 做盗版电影网站犯法吗google优化师
  • 专业团队ppt模板苏州搜索引擎排名优化商家
  • 色和尙做爰网站谷歌seo是什么意思
  • 网页设计总结经验简阳seo排名优化培训
  • 做电影分享网站违法吗网推平台有哪些比较好
  • 网站的建设与维护需要资质吗百度小程序
  • 嘉兴做网站的公司四年级的简短新闻播报
  • 心悦免做卡领取网站南宁seo渠道哪家好
  • 余姚 做网站关键词调词平台
  • 建一个网站的费用媒体发布平台
  • 科技成果展示网站建设方案引擎搜索有哪些
  • 哪里能找到免费网站发布新闻最快的网站
  • 中山市政府网站建设网站查询访问
  • 宜昌网站设计制作公司泉州排名推广
  • 天津网站制作维护爱站网关键字挖掘
  • 个人网站做支付接口佛山seo关键词排名
  • 驻马店做网站推广专业网页设计和网站制作公司
  • 宣城有做网站的公司吗seo的理解
  • Kali Linux 发布重构版Vagrant镜像:通过命令行快速部署预配置DebOS虚拟机
  • [react] class Component and function Component
  • 多级缓存一致性矩阵:ABP vNext 下的旁路 / 写穿 / 写回组合实战
  • ansible playbook 实战案例roles | 实现基于 IHS 的 AWStats 访问监控系统
  • JAVA:MyBatis 核心组件详解的技术指南
  • Qt——文件操作