2017-05-09 11 views
0

私はFeignクライアントを使用してSpringブートプロジェクトを作成し、OAuthとJSON Webトークンを介して承認を処理しています。承認後、GETパラメータを使用してアクセストークンを送信する必要があります。しかし、それをGETパラメータとして送信する代わりに、ヘッダ内で送信したいと思います。私はそれを行う方法を見つけることができませんでした。それは誰でも知っていますか?Springブート:ヘッダー(OAuth)にJWTを送信

マイ設定:

@Configuration 
@EnableAuthorizationServer 
public class AuthorizationServerConfiguration extends AuthorizationServerConfigurerAdapter { 

    @Autowired 
    @Qualifier("authenticationManagerBean") 
    private AuthenticationManager authenticationManager; 

    @Override 
    public void configure(ClientDetailsServiceConfigurer clients) throws Exception { 

     clients.inMemory() 
       .withClient(oAuth2ClientName) 
       .authorizedGrantTypes("password", "authorization_code", "refresh_token", "implicit") 
       .authorities("ROLE_CLIENT", "ROLE_TRUSTED_CLIENT") 
       .scopes("read", "write", "trust") 
       .secret(oAuth2ClientSecret) 
       .accessTokenValiditySeconds(oAuth2AccessTokenValidSecs). 
       refreshTokenValiditySeconds(oAuth2RefreshTokenValidSecs); 
    } 

    @Override 
    public void configure(AuthorizationServerEndpointsConfigurer endpoints) throws Exception { 
     endpoints.tokenStore(tokenStore()) 
       .accessTokenConverter(accessTokenConverter()) 
       .authenticationManager(authenticationManager); 
    } 

    @Bean 
    public TokenStore tokenStore() { 
     return new JwtTokenStore(accessTokenConverter()); 
    } 

    @Bean 
    public JwtAccessTokenConverter accessTokenConverter() { 
     JwtAccessTokenConverter converter = new JwtAccessTokenConverter(); 
     converter.setSigningKey(jwtSigningKey); 
     return converter; 
    } 

    @Bean 
    @Primary 
    public DefaultTokenServices tokenServices() { 
     DefaultTokenServices defaultTokenServices = new DefaultTokenServices(); 
     defaultTokenServices.setTokenStore(tokenStore()); 
     defaultTokenServices.setSupportRefreshToken(true); 
     return defaultTokenServices; 
    } 
} 

私はすでにそれをグーグルが、私が見つけたものは、自己設計と非常に複雑に見えたのようなものでした。

答えて

0
  1. 認証サービスとして、クライアントはGET/POST apiを/oauth/tokenと呼び出すことによってトークンを生成する必要があります。 clientId、clientSecret、username、およびpasswordのほかに、grant_typeを指定する必要があります。とにかく、この呼び出しはJWTトークンとしてアクセストークンを生成します。
  2. クライアントはjwtトークンを取得し、そこからアクセストークンを抽出してリソースサーバーに送信します(ここであなたが尋ねるものは承認ベアラーヘッダー)。このようなものAuthorization Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX25hbWUiOiJhZG1pbiIsInNjb3BlIjpbInJlYWQiLCJ3cml0ZSJdLCJleHAiOjE0OTUxMjE0NzYsImF1dGhvcml0aWVzIjpbIlJPTEVfQURNSU4iLCJST0xFX1VTRVIiXSwianRpIjoiNGYyNzQxMmMtNzkyOC00MWE5LTliMjQtN2I4ZmNmMTdiOGRhIiwidGVuYW50IjoidDEiLCJjbGllbnRfaWQiOiJjbGllbnQxIn0.Hwo7T8cAEFVm2NvXQUURiV2uiVz0nHz6RtXbOrFzGaK09TnTJJQmY8VKXsOble7prkveWBqLpWJk9J-9PRCntPW2Tsh5bjQJoFkkfHvT0Vc0TFarbFOh7St567rv5w0mYBNCxD28CM6dv_FHiz5wIoeEUeqQFIqojE3qo-aoT0o1ts-mO-Qmz-Dtla4-wGAYVgs84gQQ_n-U0kZzk_F09iHMgZRAIWq1ot2O6EZ8HHzaHA1gTsq5iWOZyxZAkGO0MTRyZir6vf8PoCHMn2Ge1uePl2NS0-UI5E8ozs2EXyGRHY6p-ZQTGvrUIObf_ZBQGgd37EoDBkrPK65kVqpZfw
  3. リソースサーバーは、JWTアクセストークンを確認する必要があり、リソースサーバーの設定は、リソースサーバーが承認サーバーと結びついているかどうかによって異なり、両方が同じスプリングコンテキストに存在します。
関連する問題