如何通过OAuth2集成2(或更多)jHipster应用程序?
我已经建立了一个名为“UserCenter”的应用程序,这里是.yo-rc.json如何通过OAuth2集成2(或更多)jHipster应用程序?,oauth,jhipster,Oauth,Jhipster,我已经建立了一个名为“UserCenter”的应用程序,这里是.yo-rc.json { "generator-jhipster": { "jhipsterVersion": "3.12.0", "baseName": "UserCenter", "packageName": "com.company.test.user", "packageFolder": "com/company/test/user", "serverPort"
{
"generator-jhipster": {
"jhipsterVersion": "3.12.0",
"baseName": "UserCenter",
"packageName": "com.company.test.user",
"packageFolder": "com/company/test/user",
"serverPort": "19090",
"authenticationType": "oauth2",
"hibernateCache": "hazelcast",
"clusteredHttpSession": false,
"websocket": false,
"databaseType": "sql",
"devDatabaseType": "mysql",
"prodDatabaseType": "mysql",
"searchEngine": false,
"messageBroker": false,
"buildTool": "maven",
"enableSocialSignIn": false,
"useSass": true,
"applicationType": "monolith",
"testFrameworks": [
"gatling"
],
"jhiPrefix": "jhi",
"enableTranslation": true,
"nativeLanguage": "zh-cn",
"languages": [
"zh-cn",
"en"
],
"serviceDiscoveryType": false
}
{
"generator-jhipster": {
"jhipsterVersion": "3.12.0",
"baseName": "MsgCenter",
"packageName": "com.company.test.msg",
"packageFolder": "com/company/test/msg",
"serverPort": "19002",
"authenticationType": "session-based",
"hibernateCache": "hazelcast",
"clusteredHttpSession": false,
"websocket": false,
"databaseType": "sql",
"devDatabaseType": "mysql",
"prodDatabaseType": "mysql",
"searchEngine": false,
"messageBroker": false,
"buildTool": "maven",
"enableSocialSignIn": true,
"useSass": true,
"applicationType": "monolith",
"testFrameworks": [
"gatling"
],
"jhiPrefix": "jhi",
"enableTranslation": true,
"nativeLanguage": "zh-cn",
"languages": [
"zh-cn",
"en"
],
"serviceDiscoveryType": false,
"skipUserManagement": true
}
}
另一个名为“MsgCenter”的应用程序是.yo-rc.json
{
"generator-jhipster": {
"jhipsterVersion": "3.12.0",
"baseName": "UserCenter",
"packageName": "com.company.test.user",
"packageFolder": "com/company/test/user",
"serverPort": "19090",
"authenticationType": "oauth2",
"hibernateCache": "hazelcast",
"clusteredHttpSession": false,
"websocket": false,
"databaseType": "sql",
"devDatabaseType": "mysql",
"prodDatabaseType": "mysql",
"searchEngine": false,
"messageBroker": false,
"buildTool": "maven",
"enableSocialSignIn": false,
"useSass": true,
"applicationType": "monolith",
"testFrameworks": [
"gatling"
],
"jhiPrefix": "jhi",
"enableTranslation": true,
"nativeLanguage": "zh-cn",
"languages": [
"zh-cn",
"en"
],
"serviceDiscoveryType": false
}
{
"generator-jhipster": {
"jhipsterVersion": "3.12.0",
"baseName": "MsgCenter",
"packageName": "com.company.test.msg",
"packageFolder": "com/company/test/msg",
"serverPort": "19002",
"authenticationType": "session-based",
"hibernateCache": "hazelcast",
"clusteredHttpSession": false,
"websocket": false,
"databaseType": "sql",
"devDatabaseType": "mysql",
"prodDatabaseType": "mysql",
"searchEngine": false,
"messageBroker": false,
"buildTool": "maven",
"enableSocialSignIn": true,
"useSass": true,
"applicationType": "monolith",
"testFrameworks": [
"gatling"
],
"jhiPrefix": "jhi",
"enableTranslation": true,
"nativeLanguage": "zh-cn",
"languages": [
"zh-cn",
"en"
],
"serviceDiscoveryType": false,
"skipUserManagement": true
}
}
我想让MsgCenter通过用户中心Oauth2登录。我怎么去
添加信息:
我找到了这一页
我不确定这一点。根据您当前的设置,您的第二个名为“MsgCenter”的应用程序最初配置为拥有自己的用户管理。目前,oauth2 authserver For monoliths(JHipster的默认选项)没有自动生成的计数器部件 如何通过执行以下步骤将MsgCenter转换为oauth2资源服务器: 首先,将WebSecurity配置更改为ResourceServerConfiguration(使用
@enableSourceServer
)。如果您使用UAA场景生成JHipster microservice,那么有一些示例可以说明如何做到这一点。但是代替JWT,您可以通过用户信息URI执行“正常”方式,并像这样配置它
security:
oauth2:
client:
clientId: jhipsterOauth2SampleApplicationapp
clientSecret: my-secret-token-to-change-in-production # if still default
accessTokenUri: http://UserCenterUrl/oauth/access_token
userAuthorizationUri: http://UserCenterUrl/dialog/oauth
resource:
userInfoUri: http://UserCenterUrl/account
请参阅,并从中获得以下链接
在第二步中,您应该从MsgCenter中删除用户管理,因为它不再需要了
这种方法使用授权流,其中资源服务器通过用户信息uri检索用户详细信息
另一种方法是使用JWT令牌。JHipster提供了完整的oauth2设置,其中授权服务器和资源服务器在中相互连接,这可能会帮助您作为示例代码查找正确的实现