diff --git a/src/main/java/com/arrokoth/standalone/authorization/config/OAuth2Config.java b/src/main/java/com/arrokoth/standalone/authorization/config/OAuthComponentConfig.java similarity index 97% rename from src/main/java/com/arrokoth/standalone/authorization/config/OAuth2Config.java rename to src/main/java/com/arrokoth/standalone/authorization/config/OAuthComponentConfig.java index 82c3776..99c0041 100644 --- a/src/main/java/com/arrokoth/standalone/authorization/config/OAuth2Config.java +++ b/src/main/java/com/arrokoth/standalone/authorization/config/OAuthComponentConfig.java @@ -8,8 +8,9 @@ import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; import org.springframework.security.crypto.password.PasswordEncoder; import org.springframework.security.oauth2.server.authorization.settings.AuthorizationServerSettings; + @Configuration -public class OAuth2Config { +public class OAuthComponentConfig { @Bean diff --git a/src/main/java/com/arrokoth/standalone/authorization/store/RegisteredClientRepositoryStore.java b/src/main/java/com/arrokoth/standalone/authorization/store/RegisteredClientRepositoryStore.java index c100513..8e14862 100644 --- a/src/main/java/com/arrokoth/standalone/authorization/store/RegisteredClientRepositoryStore.java +++ b/src/main/java/com/arrokoth/standalone/authorization/store/RegisteredClientRepositoryStore.java @@ -13,6 +13,7 @@ import org.springframework.security.oauth2.server.authorization.settings.ClientS import org.springframework.security.oauth2.server.authorization.settings.TokenSettings; import java.time.Duration; +import java.util.List; import java.util.UUID; @Configuration @@ -43,6 +44,35 @@ public class RegisteredClientRepositoryStore { .build()) .build(); - return new InMemoryRegisteredClientRepository(oidcClient); + + RegisteredClient gatewayClient = RegisteredClient.withId(UUID.randomUUID().toString()) + .clientId("gateway-standalone-client") + .clientSecret(bCryptPasswordEncoder.encode("gateway-secret")) + .clientAuthenticationMethod(ClientAuthenticationMethod.CLIENT_SECRET_BASIC) + .authorizationGrantType(AuthorizationGrantType.AUTHORIZATION_CODE) + .authorizationGrantType(AuthorizationGrantType.REFRESH_TOKEN) + .authorizationGrantType(AuthorizationGrantType.CLIENT_CREDENTIALS) + // 回调地址(授权码返回地址) + .redirectUris(uris -> uris.addAll( + List.of( + "http://127.0.0.1:8091/login/oauth2/code/messaging-client-oidc", + "http://127.0.0.1:9528/callback", + "http://127.0.0.1:5173/social/callback", + "http://8.147.235.150:60088/social/callback" + ) + )) + .postLogoutRedirectUri("http://127.0.0.1:8082/logged-out") + .scope(OidcScopes.OPENID) + .scope(OidcScopes.PROFILE) + .scope("gateway.read") + .scope("gateway.write") + .clientSettings(ClientSettings.builder().requireAuthorizationConsent(false).build()) + .tokenSettings(TokenSettings.builder() + .accessTokenTimeToLive(Duration.ofHours(1)) + .refreshTokenTimeToLive(Duration.ofHours(10)) + .build()) + .build(); + + return new InMemoryRegisteredClientRepository(oidcClient, gatewayClient); } } diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index 49fd73d..c61d17b 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -57,12 +57,25 @@ spring: - - - logging: level: root: INFO com.arrokoth: DEBUG org.springdoc: INFO org.springframework: INFO + +#mybatis: +# type-aliases-package: com.arrokoth.**.domain +# mapper-locations: classpath*:com.arrokoth/**/mapper/xml/*.xml +# configuration: +# map-underscore-to-camel-case: true +# log-impl: org.apache.ibatis.logging.stdout.StdOutImpl +#mybatis-plus: +# type-aliases-package: com.arrokoth.**.domain +# mapper-locations: classpath*:com.arrokoth/**/mapper/xml/*.xml +# global-config: +# banner: true +# enable-sql-runner: true +# configuration: +# map-underscore-to-camel-case: true +# check-config-location: true \ No newline at end of file diff --git a/src/test/java/com/arrokoth/standalone/authorization/StandaloneServerApplicationTests.java b/src/test/java/com/arrokoth/standalone/authorization/StandaloneServerApplicationTests.java deleted file mode 100644 index ff3ba32..0000000 --- a/src/test/java/com/arrokoth/standalone/authorization/StandaloneServerApplicationTests.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.arrokoth.standalone.authorization; - -import org.junit.jupiter.api.Test; -import org.springframework.boot.test.context.SpringBootTest; - -@SpringBootTest -class StandaloneServerApplicationTests { - - @Test - void contextLoads() { - } - -}