springMVC项目需要实现一个PasswordEncoder来支持多种加密方式,要求兼容历史数据

风语空音 2020-11-23 10:34:17
我最开始使用的是下面配置文件定义里写好的编码,但是自定义的passwordEncoder完全不会,求大佬指点,可以的话麻烦写一下具体的实现类,以及如何跟spring-security关联

<security:global-method-security pre-post-annotations="enabled"/>

<!--
http:security:权限设置,none,排除资源
http:auto-config:是否自动配置
设置为true时框架会提供默认的一些配置,例如提供默认的登录页面、登出处理等
设置为false时需要显示提供登录表单配置,否则会报错
use-expressions:用于指定intercept-url中的access属性是否使用表达式(SpEL表达式)
-->
<!--1.配置不需要授权访问的资源-->
<!-- 2.配置需要授权访问的资源及访问角色及权限-->
<security:http auto-config="true" use-expressions="true">
<!---自定义登录配置-->
<security:form-login login-page="http://localhost:8080/pages/login.html"
login-processing-url="/sec/login.do"
authentication-failure-forward-url="/user/loginFail.do"
authentication-success-forward-url="/user/loginSuccess.do"/>
<!--访问拒绝处理器-->
<!--
logout:退出登录
logout-url:退出登录操作对应的请求路径
logout-success-url:退出登录后的跳转页面
-->
<security:logout logout-url="/sec/logout.do"
logout-success-url="http://localhost:8080/pages/login.html"
invalidate-session="true"/>
<!--
csrf:对应CsrfFilter过滤器
disabled:如果使用自定义登录页面需要关闭此项,否则登录操作会被禁用(403)
-->
<security:csrf disabled="true"/>
</security:http>
<!-- 3.配置认证授权管理器(认证管理者、认证提供者、认证对象)-->
<security:authentication-manager>
<!--
authentication-provider:认证提供者,执行具体的认证逻辑
-->
<security:authentication-provider user-service-ref="securityUserDetailsService">
<security:password-encoder ref="passwordEncoder"/>
</security:authentication-provider>
</security:authentication-manager>
<bean id="securityUserDetailsService" class="com.itheima.health.security.SecurityUserDetailsService"/>
<!--配置密码加密对象-->
<bean class="org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder" id="passwordEncoder"/>
...全文
5821 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
这是要做单点登录吗
风语空音 2020-11-23
  • 打赏
  • 举报
回复
不要沉啊啊啊啊

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧