28 Nisan 2019 Pazar

SpringSecurity OAuth2 JwtTokenStore Sınıfı

Giriş
Bu sınıf AuthorizationServerConfigurerAdapter (authorization) veya WebSecurityConfigurerAdapter (authentication) tarafından kullanılabilir. Açıklaması şöyle.
JwtTokenStore encodes token-related data into the token itself. It does not make tokens persistent and requires JwtAccessTokenConverter as a translator between a JWT-encoded token and OAuth authentication information. ("Spring Essentials" by Shameer Kunjumohamed, Hamidreza Sattari).
JSON Web Tokens - JWT yazısına bakabilirsiniz.

constructor - JwtAccessTokenConverter
Authorization Server tarafından private key ile imzalanan token Resource Server tarafından public key kullanılarak doğrulanır.

Örnek - JwtAccessTokenConverter.setVerifierKey
Şöyle yaparız
@Value("${spring.application.name}")
public String applicationResourceID;

@Value(" ${key.config.oauth2.publicKey}")
private String publicKey;

@Value("jwt.aes.encrypt.keyValue")
String jwtAesEncryptionKey;


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

@Bean
public JwtAccessTokenConverter jwtAccessTokenConverter() {
 MyJwtAccessTokenConverter converter = new MyJwtAccessTokenConverter(jwtAesEncryptionKey);
 converter.setVerifierKey(publicKey);
 return converter;
}

Örnek - JwtAccessTokenConverter.setSigningKey
Şöyle yaparız.
@Configuration
@EnableAuthorizationServer
public class AuthorizationServerConfig extends AuthorizationServerConfigurerAdapter {

  private String privateKey;

  private int accessTokenValiditySeconds = 900; // 15 minutes;

  
  public AuthorizationServerConfig() {
    this.privateKey = "private";
  }

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

  @Bean
  public JwtAccessTokenConverter accessTokenConverter() {
    JwtAccessTokenConverter converter = new JwtAccessTokenConverter();
    converter.setSigningKey(this.privateKey);
    return converter;
  }
  ...
}
Örnek - JwtAccessTokenConverter.setSigningKey
Şöyle yaparız.
@EnableResourceServer
@Configuration
public class SecurityConfig extends WebSecurityConfigurerAdapter {

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

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

Hiç yorum yok:

Yorum Gönder