Java – Spring Framework / Spring Security中基于表单和基于证书的身份验证
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Java – Spring Framework / Spring Security中基于表单和基于证书的身份验证,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1135字,纯文字阅读大概需要2分钟。
内容图文
![Java – Spring Framework / Spring Security中基于表单和基于证书的身份验证](/upload/InfoBanner/zyjiaocheng/770/97e4c4ffb84f44de85e28142f303a4f0.jpg)
是否可以在spring框架中同时为登录页面实现2个登录实现?表单登录和基于证书的登录(x509).我尝试过这两种方法中的任何一种,但同时将它们组合在一起,我很难做到这一点.知道如何启用这两种方法吗?我可以参考的任何书籍或网站参考?
谢谢
解决方法:
是的,可以通过使SSL client-auth可选.
Here on Baeldung是一个很好的教程,使用强制客户端身份验证启用带有X.509证书的SSL客户端身份验证(不适合您的情况,使用登录表单回退)
按照该教程并注意application.properties文件,以使client-auth想要而不是需要.这将使客户端 – 服务器SSL握手尝试请求证书.
server.ssl.client-auth=want
>如果浏览器未提供证书(没有任何配置或用户在提示从列表中选择证书时单击取消),则SSL握手将在没有客户端证书的情况下完成,并且用户必须登录用户名密码
>如果用户选择证书,则SSL握手将使用客户端证书完成.然后,服务器验证信任库中的给定证书.如果证书有效,则成功建立SSL握手.否则,服务器拒绝连接.
注意那个
>仅使用x.509证书进行身份验证.对于授权,您必须提供X509Configurer和UserDetailsService实现,以便为刚刚通过x.509进行身份验证的用户检索UserDetails
>因此,如果您拥有一个具有指定角色的用户数据库,即使该证书位于信任库中,该用户也可能不在用户数据库中,因此您必须在应用程序逻辑中处理这种可能性.即当SSL连接是相互的时,但用户不在用户数据库中.
内容总结
以上是互联网集市为您收集整理的Java – Spring Framework / Spring Security中基于表单和基于证书的身份验证全部内容,希望文章能够帮你解决Java – Spring Framework / Spring Security中基于表单和基于证书的身份验证所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。