나는 oauth2의 작동 예제를 가지고 있으며 클라이언트와 리소스 소유자에 대한 inmemory 인증 및 권한 부여를 사용합니다. 나는 JDBC 인증 및 권한 부여로 변환하려고 노력하고있다. Bad Credentials 오류가 계속 발생합니다. 필터 보안을 통해 다음과 같이 디버깅하는 것이 매우 혼란 스럽습니다.Oauth2 Java Config JDBC
Inserted는 현재 메모리 인증 사용자를 사용하지만 클라이언트는 사용하지 않는 자바 코드입니다. 스키마는 this과 동일합니다.
으로 Java 인증을 사용하여 oauth2.0의 전체 작동 예제가 있습니까?
-------------------
코드는 당신이 당신의 질문에 넣어 URL에서 동일한 스키마를 사용하고public class WebSecurityConfig extends OAuth2ServerConfigurerAdapter {
private final static Logger logger = LogFactory.getLogger(WebSecurityConfig.class);
private JdbcClientDetailsService jdbcClientDetailsService;
private JdbcTokenStore jdbcTokenStore;
private JdbcUserDetailsManagerConfigurer jdbcUserDetailsManagerConfigurer;
// @formatter:off
@Override
protected void configure(HttpSecurity http) throws Exception {
OAuth2ServerConfigurer oAuth2ServerConfigurer = new OAuth2ServerConfigurer().tokenStore(jdbcTokenStore);
http
.requestMatchers()
.and()
.authorizeRequests()
.antMatchers("/").permitAll()
.anyRequest().authenticated()
.and()
.apply(oAuth2ServerConfigurer);
http.setSharedObject(ClientDetailsService.class, jdbcClientDetailsService);
}
// @formatter:on
// // @formatter:off
// @Override
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
// int validityInSec = Integer.parseInt(validtityInSeconds);
auth
.userDetailsService(new InMemoryUserDetailsManager(getUserDetails()));
}
// @formatter:on
//
private final Collection<UserDetails> getUserDetails() {
List<UserDetails> userDetails = new ArrayList<UserDetails>();
userDetails.add(new User("auction", "password", AuthorityUtils.createAuthorityList(
"USER", "read", "write")));
return userDetails;
}
@Autowired
@Qualifier("oauth_details_ds")
public void setDataSource(DataSource dataSource){
jdbcClientDetailsService = new JdbcClientDetailsService(dataSource);
jdbcTokenStore = new JdbcTokenStore(dataSource);
// try {
// jdbcUserDetailsManagerConfigurer = new JdbcUserDetailsManagerConfigurer().dataSource(dataSource);
// } catch (Exception e) {
// logger.error("Bad code design: ",e);
// e.printStackTrace();
// }
}
}
security.xml에 JDBC를 구성하지 않는 이유는 무엇입니까? 문서에서 어떻게하는지 보여줍니다 ... – OhadR