我正在使用oauth2保护Spring REST Web服务 . 我想将AuthorizationServer与ResourceServer分离为两个不同的应用程序 - AuthorizationServer是oauth2 SSO(单点登录),ResourceServer是业务REST服务的第二个应用程序 . 这样我就无法使用内存令牌库,因为我的应用程序将存在于不同的主机上 . 我需要一些TokenStore的共享机制,例如数据库 . 在Spring框架中有JdbcTokenStore实现,但在我的项目中我使用的是Neo4J图形数据库 .
所以,我有一个问题 - 我应该尝试在Neo4J中存储oauth2令牌(例如创建Neo4JTokenStore的自定义实现(已经存在?))还是在其他一些数据库中?这种情况的最佳做法是什么?
3 回答
我为Neo4j成功实现了Token Store .
AbstractDomainEntity.java
OAuth2AuthenticationAccessToken.java
OAuth2AuthenticationRefreshToken.java
OAuth2AccessTokenRepository.java
OAuth2RefreshTokenRepository.java
OAuth2TokenStoreRepositoryImpl.java
我使用GraphProperty在OAuth2AuthenticationAccessToken.java和OAuth2AuthenticationAccessToken.java中为两个对象OAuth2AccessToken和OAuth2Authentication转换String,如下所示 .
所以,我为它们实现了四个转换器
在bean xml中,我向Spring声明:
结束 . :)欢迎任何反馈 .
如果您只想将Neo4j用于您的项目,我将为Neo4j实现令牌存储(并开源它)我认为它应该是非常简单的 .
如果您已经使用了其他数据库,那么您也可以使用他们的存储 .
Question is, do you have to connect the oauth2 tokens with anything in your graph??
不需要将令牌存储到数据库中 . 将令牌存储到内存中 .
看我的 Oauth2Configuration 文件,
这对我有用!!