java – 使用Spring Security自定义注销URL
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java – 使用Spring Security自定义注销URL,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2112字,纯文字阅读大概需要4分钟。
内容图文
我们在创建URI时遵循一定的约定.所有与身份验证相关的URI(例如/ login,/ logout,/ changepassword等)都属于子上下文/身份验证.
因此,我们的身份验证相关URI如下所示:
/auth/login
/auth/logout
/auth/changepassword
这就是我们在Spring安全上下文XML中所拥有的.
<http pattern="/auth/**" security="none" />
<http pattern="/resources/**" security="none" />
<http auto-config="true" access-decision-manager-ref="accessDecisionManager">
<intercept-url pattern="/admin/**" access="ADMINISTRATIVE_ACCESS"/>
<intercept-url pattern="/**" access="XYZ_ACCESS"/>
<form-login
login-page="/auth/login"
default-target-url="/content"
authentication-failure-url="/auth/loginFailed"
authentication-success-handler-ref="authenticationSuccessHandler"/>
<logout logout-url="/auth/logout" logout-success-url="/auth/login"/>
</http>
现在的问题是/ auth / logout在访问时给了我404.但是,如果我将其更改为/ auth以外的其他内容,例如/ abcd / logout或者甚至/ logout,它可以正常工作.
我认为这是因为我们已将/ auth / **定义为不安全但仍尝试将其用作注销页面. (如果您还没有登录,如何访问注销?)
有没有办法解决我们相当严格的URI命名约定?
解决方法:
你对这个部分是正确的:
I am thinking this is due to the fact that we have defined
/auth/**
as
unsecured and yet trying to use it as a logout page. (How can you
access logout if you have not logged in?)
更精确的定义
<http pattern="/auth/**" security="none" />
意味着没有Spring Security过滤器应用于匹配/ auth / **模式的??请求,因此Spring Security不会控制/ auth / logout URL.
因为Spring Security在主< http>中匹配/ auth / logout的模式从上到下简单覆盖不起作用,因此解决该问题可以定义单独的模式:
<http pattern="/auth/login" security="none" />
<http pattern="/auth/changepassword" security="none" />
<http pattern="/resources/**" security="none" />
<http auto-config="true" use-expressions="true" access-decision-manager-ref="accessDecisionManager">
<intercept-url pattern="/auth/logout" access="permitAll"/>
<intercept-url pattern="/admin/**" access="ADMINISTRATIVE_ACCESS"/>
<intercept-url pattern="/**" access="XYZ_ACCESS"/>
<!-- rest of your config -->
</http>
如果您要处理许多/ auth / *网址,可以使用< http>的request-matcher="regex",但我不认为它是可读的.
内容总结
以上是互联网集市为您收集整理的java – 使用Spring Security自定义注销URL全部内容,希望文章能够帮你解决java – 使用Spring Security自定义注销URL所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。