我一直在遵循本教程中的示例:https://spring.io/blog/2015/01/28/the-api-gateway-pattern-angular-js-and-spring-security-part-iv
简单地说:
UI服务器有一个登录页面,它与登录一起工作,并创建一个存储在Redis服务器中的spring会话,并将其共享给资源服务器。当我在内存身份验证中有一些虚拟用户时,一切都很好。
的问题是:--我希望我的UI服务器能够对数据库中存在的真实用户执行登录。UI服务器不应该有任何与DB相关的代码(不知道它的存在),但是它应该在资源服务器中调用REST服务。我思考的唯一方法(但听起来不对)是在UI中实现userDetailsService bean,loadUserByUsername方法应该从资源服务器(例如/getUser)调用rest服务。rest服务应该返回所有用户详细信息,包括给定用户名的凭据和角色。然而,据我所知,这个服务不能被保护(为了使调用成功),从而损害整个安全。
我愿意听取所有意见和建议。记住,这是我第一次尝试使用Spring。
提前谢谢你,
尼古拉斯
发布于 2015-11-07 12:49:27
万一有人感兴趣我是怎么处理这件事的。
我决定做一件谨慎的事,学习春天的安全。:)
我的答案是在我的UI服务器中使用一个自定义的rest,它将在资源服务器中调用一个不受保护的rest登录服务,从而根据DB验证用户。
如果响应成功(例如,可以用用户名、密码、角色返回用户对象),那么我将从其中创建一个UsernamePasswordAuthenticationToken对象并返回它。
如果响应是不成功(例如返回对象为null或抛出异常),那么我将返回null或抛出AuthenticationException,这取决于AuthenticationException的行为.我还没有达到那个阶段的学习。
http://docs.spring.io/spring-security/site/docs/3.1.x/reference/springsecurity-single.html#tech-intro-authentication
发布于 2021-07-21 12:37:28
Security是一个功能强大且高度定制的身份验证和访问控制框架。它是保护基于Spring的应用程序的事实上的标准。
Security是一个侧重于向Java应用程序提供身份验证和授权的框架。与所有Spring项目一样,Security的真正强大之处在于它能够很容易地扩展以满足自定义需求
对身份验证和授权的全面和可扩展支持
防止攻击,如会话固定、点击劫持、跨站点请求伪造等。
Servlet集成
与Spring的可选集成
https://stackoverflow.com/questions/33533116
复制相似问题