【问题标题】:Migrating From Spring Security to Oracle Access Manager从 Spring Security 迁移到 Oracle Access Manager
【发布时间】:2012-11-14 15:43:37
【问题描述】:
我目前有一个使用 Spring Framework 进行身份验证和授权的 Web 应用程序。我有一个客户群想要实施 Oracle Access Manager 以进行身份验证和授权。有没有人知道在下面给出我当前的 Web 应用程序设置时,这种迁移会有多复杂?
当前的 Web 应用程序:
- 使用基于 Spring 的自定义过滤器进行单点登录身份验证
- 使用基于 Spring 表单的安全性
- Web 应用程序当前使用 MySQL 并实现 Spring org.springframework.security.core.userdetails.UserDetailsService 来根据具有用户名和加密密码的 MySQL 表对用户进行身份验证
- UI 用 JSF/Facelets 编写,并使用 Hibernate JPA 实现对 MySQL 的所有 CRUD 操作
【问题讨论】:
标签:
java
oracle
spring-security
single-sign-on
【解决方案1】:
我做过一次反向迁移,从 Sun Access Manager 到普通 Spring Security。
从我在遗留 AM 访问代码中看到的情况来看,您的问题可以通过单个自定义 Spring Security 过滤器来解决,该过滤器使用 this API 访问 AM 进行身份验证和授权(链接可能已过时)。因此,客户将能够在 Access Manager 中管理用户和角色,而无需对应用程序本身进行架构更改。
AM 访问 sn-p(未测试):
SSOToken adminToken = (SSOToken) AccessController.doPrivileged(AdminTokenAction.getInstance());
AMIdentityRepository repo = new AMIdentityRepository(adminToken, "realm_name");
IdSearchResults res = rep.searchIdentities(IdType.USER, uid, new IdSearchControl());
我自己从来没有做过这样的整合,所以也许有更合适的方法。