如何通过OAuth2集成2(或更多)jHipster应用程序?

如何通过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"

我已经建立了一个名为“UserCenter”的应用程序,这里是.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”的应用程序是.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设置,其中授权服务器和资源服务器在中相互连接,这可能会帮助您作为示例代码查找正确的实现