Spring Cloud Architectureでブラウザが閉じるとユーザーログインを維持する方法 -- angular フィールド と spring-cloud フィールド 関連 問題

how to persist user login when browser closes in spring cloud architecture












0
vote

問題

日本語

私は現在Spring Cloud Microservicesアーキテクチャを使用しています、私はOAuth2承認サーバー、Zuul、Eurekaの発見およびリソースサーバーを持っています。 Zuul ProxyにはUIクライアントの角度もあります。私はZuul ServerでSSOをしています、そしてそれはうまく機能し、私はアクセストークンと下流のサービスに中継することができます。私の質問は、ブラウザのログインを閉じた後にSSOを使用してログインしたときです。また、OAuth2サーバーでemireme meを使ってみました。クライアントでログインを保存する方法

承認サーバ

<事前> <コード> Image1

Zuul(APIゲートウェイ角付)

<事前> <コード> Image2

Zuul(application.yml)

<事前> <コード> Image3
英語

I am currently working with spring cloud microservices architecture , I have oauth2 authorization server , zuul ,eureka discovery and resources servers . zuul proxy also has ui client angular . i am doing sso in zuul server and it works fine , i am able to get access tokens and relay to downstream services . My question is when i login using sso after i close the browser login isnt persisted . i have also tried using remember me on oauth2 server which makes login persisted in oauth2 server but not in client (zuul and angular ui) . how do i persist the login in client?

Authorization server.

@Configuration @EnableAuthorizationServer public class OAuth2Configuration extends  AuthorizationServerConfigurerAdapter{  @Autowired @Qualifier("authenticationManagerBean") private AuthenticationManager authenticationManager;  @Autowired private UserDetailsService userDetailsService;  @Autowired private DataSource dataSource;  @Bean public BCryptPasswordEncoder passwordEncoder() {     return new BCryptPasswordEncoder(); }  @Override public void configure(ClientDetailsServiceConfigurer clients) throws Exception {     clients.jdbc(dataSource);  }  @Bean @Primary public DefaultTokenServices tokenServices() {     final DefaultTokenServices defaultTokenServices = new      DefaultTokenServices();     defaultTokenServices.setTokenStore(tokenStore());     defaultTokenServices.setSupportRefreshToken(true);     return defaultTokenServices; }  @Override public void configure(AuthorizationServerEndpointsConfigurer  endpoints) throws Exception {      final TokenEnhancerChain tokenEnhancerChain = new TokenEnhancerChain();     tokenEnhancerChain.setTokenEnhancers(Arrays.asList(tokenEnhancer(), accessTokenConverter()));        endpoints.tokenStore(tokenStore()).tokenEnhancer(tokenEnhancerChain).authenticationManager(authenticationManager);         endpoints.userDetailsService(userDetailsService); }  @Bean public TokenStore tokenStore() {     return new JwtTokenStore(accessTokenConverter()); }  @Bean public TokenEnhancer tokenEnhancer() {     return new CustomTokenEnhancer(); }   @Bean protected JwtAccessTokenConverter accessTokenConverter() {     KeyStoreKeyFactory keyStoreKeyFactory = new KeyStoreKeyFactory(new ClassPathResource("securekeys.jks"), "secure123".toCharArray());     JwtAccessTokenConverter converter = new JwtAccessTokenConverter();     converter.setKeyPair(keyStoreKeyFactory.getKeyPair("securekeys"));     return converter; }  } 

zuul (api gateway with angular)

@EnableZuulProxy @EnableOAuth2Sso @Configuration public class OauthConfig extends WebSecurityConfigurerAdapter{   @Override  protected void configure(HttpSecurity http) throws Exception {     http    .httpBasic().disable()    .logout().and()    .authorizeRequests()    .antMatchers("/index.html","/*.js","/*.js.map", "/home", "/login"      ,"/").permitAll()        .anyRequest().authenticated()        .and()    .csrf()    .csrfTokenRepository(CookieCsrfTokenRepository.withHttpOnlyFalse());   }   @Bean  public OAuth2RestOperations   restOperations(OAuth2ProtectedResourceDetails   resource,OAuth2ClientContext context) {    return new OAuth2RestTemplate(resource, context); }    }  @Configuration public class JwtConfiguration {  @Autowired JwtAccessTokenConverter jwtAccessTokenConverter;   @Bean @Qualifier("tokenStore") public TokenStore tokenStore() {     return new JwtTokenStore(jwtAccessTokenConverter); }  @Bean protected JwtAccessTokenConverter jwtTokenEnhancer() {     JwtAccessTokenConverter converter =  new JwtAccessTokenConverter();     Resource resource = new ClassPathResource("public.cert");     String publicKey = null;     try {         publicKey = new String(FileCopyUtils.copyToByteArray(resource.getInputStream()));     } catch (IOException e) {         throw new RuntimeException(e);     }     converter.setVerifierKey(publicKey);     return converter;    } }   public class ViewController {    @GetMapping(value = "/{path:[^\.]*}")     public String redirect() {         return "forward:/index.html";     }  } 

zuul (application.yml)

spring: application: name: zuul-proxy  server:   port: 8080  eureka:   client:    register-with-eureka: true    fetch-registry: true    service-url:    defaultZone: http://localhost:8761/eureka        security:  oauth2:   client:     client-id: clientid     client-secret: secret     access-token-uri: http://localhost:8081/authserver/oauth/token     user-authorization-uri:           http://localhost:8081/authserver/oauth/authorize   resource:    jwt:      key-value:              -----BEGIN PUBLIC KEY-----          MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIUDSFZSDAQEAqqgETvajhbRgnr/Gypwo/eJ95Df5l+0rOQzzHtt5KHCJRm86WmncAGMfGHcqYxFH3YBB14ZTU/bzMHun/qFxqxM720OFVAJQMdoO6UFXXOp9vHiQib/qCNeU8Y1QWTeqkUJ6AorPsHqH0VVbp1RdW0YBT4PRC2rZkfQlSIqs81INA3tFZt25Z10dU0Plb0vQIGs2gZ3AL2q8VTd7z4k5GY6CF7IJ53W6LbNNup0Vbln4H2CNn1wYLRKIEXhvRxhQpJepC6nNeCvr/8BeY/GxT6xRStIfwLIWkRZVJoJVhkDS9vkV6mSckXZu11OcQ0eiH34BxVB4/b0kvknUoioEgQIDAQAB         -----END PUBLIC KEY-----          zuul: prefix: /api sensitive-headers:   routes: m1-service:   path: /M1/**   service-id: m1-service        m2-service:   path: /M2/**   service-id: m2-service  m3-service:   path: /M3/**   service-id: m3-service                    
</div
     
         
         

回答リスト


関連する質問

1  Spring Boot 2.1アプリケーションはスプリングブート1.5 Zipkinサーバーにトレースを公開できない  ( Spring boot 2 1 application not able to publish traces to spring boot 1 5 zipkin ) 
以下の依存関係でスプリングブートアプリケーションバージョン2.1.2に取り組んでいます <事前> <コード> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter...

2  Eurekaサービスの名前を解決しないFeIgnclient  ( Feignclient not resolving eureka service name ) 
spring-cloud-starter-openfeign クライアントを使用してEurekaクライアントアプリケーションを書きます。 これが私の pom です。 <事前> <コード> <project xmlns="http://maven.apac...

0  非標準ポートのHTTPSを指すようにSpringCloud Eurekaインスタンスを設定する方法  ( How to configure springcloud eureka instance to point to https on non standard p ) 
アクチュエータでスプリングブート/クラウドを使用していて、アプリケーションクラスに@enableEureKaclientを付けると、アプリケーションはEureka Serverとともに正しく登録されます。 しかし、私のアプリケーションをHTTPSで実行するよう...

0  HerokuのSpring Cloud Gateway + MicroServiceは、URLの結果にポートを入れています.GatewayによるMicroServiceへのリクエストに応じてエラー503  ( Spring cloud gateway eureka microservice on heroku is putting the port in th ) 
Herokuに展開された3つのサービスがあります。 スプリングクラウドゲートウェイ eureka microService ゲートウェイとマイクロソフトをEurekaに登録されています。 ゲートウェイApplication.yml <事前> <...

0  Spring Cloud Camden.SR1 Hystrix.Streamがハングアップします  ( Spring cloud camden sr1 hystrix stream hangs ) 
スプリングブートアプリでcamden.sr1を使用して、Spring Cloud ServiceのHystrixストリームを有効にしようとしています。 私はコンパイル時依存性を持つことによってhystrixを有効にします: <事前> <コード> compile...

0  Feign Loggerのホスト名情報  ( Hostname information in the feign logger ) 
998877688 Discovery Serviceを使用して、Spring-Cloud環境の擬似クライアントを使用しており、カスタムFeign Loggerを実装して、柔軟な要求と応答情報を記録できます。そのために、 feign.Logger クラス...

1  SpringCloudStream - Rabbitmqバインダーのための遅い消費者  ( Springcloudstream slow consumer for rabbitmq binder ) 
Spring Cloud Stream App StarterのHTTPソースを使用してSpring Bootアプリとして作成されたHTTPソースにHTTP POSTを送信するためのUSECASEを持っています。このプロセスは5Kレコード/秒を発行します。 ...

-1  FeIngクライアント内部サーバー例外(RESTテンプレートも機能しませんでした)  ( Feign client internal server exception rest template didnt work either ) 
私が転記した最後の時間にアクセスしたトークンエラーが発生しました。私はまた休憩テンプレートで試しました。それでも同じエラーがあります。 <事前> <コード> "timestamp": 1597323995055, "status": 500, "error":...

0  Spring Cloud Eureka Appのゾーンを設定する方法  ( How to set a spring cloud eureka apps zone ) 
これはおそらく愚かな質問です。 - ) スプリングのリボンコード(ZonePreferenceserVerListFilter)では、: <事前> <コード> if (ConfigurationManager.getDeploymentContext(...

0  マイクロサービスのライフタイムをどのように設定できますか?  ( How can we set life time of a micro service ) 
私は私が複数のサーバー/インスタンス(スケーリング)で同じサービスを展開する必要があるシナリオを持っています、何らかの期間後に言うSpring Boot(Restful Micro Service)で使用可能な構成プロパティ(Application.prope...




© 2022 cndgn.com All Rights Reserved. Q&Aハウス 全著作権所有