Я искал высоко и низко, и все же я не могу найти простой ответ на эту очень раздражающую проблему,
Я следовал этому замечательному руководству: JWT с мультисервисным приложением Все отлично работает, но в конце руководства нам предлагают создать config-service(module), что я и сделал.
Проблема в том, что я не могу переопределить конфигурацию класса JwtConfig по умолчанию.
Структура проекта следующая:
-config-service
| JwtConfig.java
\
| resources
\
| jwtConfig.properties
-other-service (add dependency in the pom file of the config-service)
|
someOtherclass.java (import the JwtConfig class & using @Bean to initialize )
Класс JwtConfig:
/*all the imports*/
@PropertySource(value = "classpath:jwtConfig.properties")
public class JwtConfig {
@Value("${security.jwt.uri:/auth/**}")
private String Uri;
@Value("${security.jwt.header:Authorization}")
private String header;
@Value("${security.jwt.prefix:Bearer }")
private String prefix;
@Value("${security.jwt.expiration:#{24*60*60}}")
private int expiration;
@Value("${security.jwt.secret:JwtSecretKey}")
private String secret;
//getters
someOtherclass.java:
/*imports*/
@Configuration
@EnableWebSecurity
public class SecurityCredentialsConfig extends WebSecurityConfigurerAdapter
{
private JwtConfig jwtConfig;
@Autowired
public void setJwtConfig(JwtConfig jwtConfig) {
this.jwtConfig = jwtConfig;
}
@Bean
public JwtConfig jwtConfig() {
return new JwtConfig();
}
/*other code*/
Проблема в том, что неважно, какие параметры я проставляю в файле jwtConfig.properties,
Например:
security.jwt.uri=test
Он не появится в bean-компоненте JwtConfig, когда его загрузит другая служба.
Загружаются только значения @Value по умолчанию.
может у кого-нибудь есть совет? как я могу это исправить? Большое спасибо!