gpt4 book ai didi

java - 多个 Spring 项目,共享身份验证

转载 作者:搜寻专家 更新时间:2023-10-31 20:02:33 24 4
gpt4 key购买 nike

我有大约 10 个 Spring-MVC 项目,它们部署在家里的 Wildfly 服务器上。这些项目已经运行了很长一段时间,并且一直是私有(private)的。

但是我的一些 friend 要求访问权限,我愿意将其授予他们。我计划通过使用 AngularJS 构建 Web 应用程序来实现这一点。此应用程序将通过调用 RESTful 端点与 Spring-MVC 项目进行通信。但是,有些人可能可以访问一部分服务。我希望人们使用这些详细信息注册和登录,或者使用 OpenID 登录。

这导致必须为这些项目添加身份验证和授权。这可以通过 Spring Security 来完成。但是我不想在每个服务中实现这个逻辑。

是否可以创建额外的服务并让人们登录或注册该服务?并让其他服务使用此服务检查身份验证状态?

哪种 Spring-Security 安全模型更适合使用(OAuth 1.0、OAuth 2.0、基本身份验证等)?

是否有替代方法来实现我的要求?

最佳答案

通常的解决方案是将所有服务器放在一个通用的身份验证代理之后,为用户提供一个外观相同的登录页面。身份验证代理通过将用户名和密码与 LDAP 或数据库表中注册的值或通过 OpenId 进行比较来检查用户的身份。

如果身份验证成功,代理将开始将用户请求重定向到用户经过身份验证的服务器。

从代理转发到终端服务器的每个请求都带有一个预身份验证 header ,其中包含向应用程序证明重定向请求确实来自代理的凭据,并且它不是伪造的请求。

每个 Spring 应用程序都设置为不提供登录页面,而是检查预身份验证 header 。这是设置 Pre-Authentication 的 Spring 文档.

看看这个example与 Siteminder 身份验证代理的集成。

这个解决方案的核心是用户不直接向终端服务器发出请求,它全部通过代理,在您的情况下需要支持 OpenId。

关于java - 多个 Spring 项目,共享身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22614480/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com