Я новичок в весенней загрузке, и я хочу внедрить Oauth2 в мое весеннее загрузочное приложение для защиты моих остальных API.Я пытался выполнить некоторые уроки, чтобы выполнить мое требование, но когда я отправляю запрос на доступ к токену (http://localhost:8080/oauth/token) от почтальона, а затем получаю всплывающее окно входа, почему?
Я пробовал эту ссылку: https://pattern-match.com/blog/2018/10/17/springboot2-with-oauth2-integration/
Это мой serviceImp
@ Service (value = "leadservice") publicКласс LeadServiceImpl реализует UserDetailsService, LeadService {
@Autowired
JdbcTemplate templet;
@Override
public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
return mockUser(username);
}
private UserDetails mockUser(String username) {
String userName = "test@test.com";
String userPass = "tester";
if (!userName.equals(username)) {
throw new UsernameNotFoundException("Invalid username or password.");
}
// this is another way of dealing with password encoding
// password will be stored in bcrypt in this example
// you can also use a prefix, @see com.patternmatch.oauth2blog.config.AuthorizationServerConfig#CLIENT_SECRET
UserDetails user = User.withDefaultPasswordEncoder()
.username(username)
.password(userPass)
.authorities(getAuthority())
.build();
return user;
}
private List<SimpleGrantedAuthority> getAuthority() {
return Collections.emptyList();
}
}
это моя конфигурация сервера аутентификации
открытый класс AuthorizationServerConfig расширяет AuthorizationServerConfigurerAdapter {
static final String CLIEN_ID = "clientId";
static final String CLIENT_SECRET = "client_secret";
static final String GRANT_TYPE_PASSWORD = "password";
static final String AUTHORIZATION_CODE = "authorization_code";
static final String REFRESH_TOKEN = "refresh_token";
static final String IMPLICIT = "implicit";
static final String SCOPE_READ = "read";
static final String SCOPE_WRITE = "write";
static final String TRUST = "trust";
static final int ACCESS_TOKEN_VALIDITY_SECONDS = 1*60*60;
static final int FREFRESH_TOKEN_VALIDITY_SECONDS = 6*60*60;
@Autowired
private TokenStore tokenStore;
@Autowired
private AuthenticationManager authenticationManager;
@Override
public void configure(ClientDetailsServiceConfigurer clients) throws Exception {
clients
.inMemory()
.withClient(CLIEN_ID)
.secret(CLIENT_SECRET)
.authorizedGrantTypes(GRANT_TYPE_PASSWORD, AUTHORIZATION_CODE, REFRESH_TOKEN)
.scopes(SCOPE_READ, SCOPE_WRITE, TRUST)
.accessTokenValiditySeconds(ACCESS_TOKEN_VALIDITY_SECONDS)
.refreshTokenValiditySeconds(FREFRESH_TOKEN_VALIDITY_SECONDS);
}
@Override
public void configure(AuthorizationServerEndpointsConfigurer endpoints) throws Exception {
endpoints.tokenStore(tokenStore)
.authenticationManager(authenticationManager);
}
}