0

REST API와 함께 사용할 수있는 서버 백엔드를 개발하려고합니다. 사용자가 요청을 통해 사용자 이름과 암호를 보내는 끝점을 제공하려고합니다. 사용자 데이터가 데이터베이스에서 검색되고 사용자가 유효하면 JWT 토큰이 생성되고 응답을 통해 클라이언트에 전송됩니다.jdbc auth에 대한 사용자 및 암호를 제공하는 올바른 방법은 무엇입니까?

조회를 위해 jdbc 인증을 사용하고 싶습니다. 스프링 보안과 함께 제공되는 인증. jdbc 인증을위한 데이터를 제공하는 올바른 방법은 무엇입니까? 요청 헤더에 사용자 이름과 암호를 써야합니까? 또는 HTTP 기본 인증이이 용도로 사용할 수 있습니까?

편집 : 현재 나의 접근 방식은 다음과 같습니다. jdbc 인증 및 http 기본 인증을 구성했습니다. 저는 이것을 통합 테스트로 테스트하려고합니다. 이 테스트는 401 상태에 응답하고 200 상태를 기대합니다. 솔로 SQL 쿼리를 테스트했습니다. 그들은 일한다.

누구든지 내가 뭘 잘못하고 있는지 힌트를 줄 수 있습니까?

보안 구성 : (그게 전부 내부 클래스)

@Configuration 
@Import(DaoConfig.class) 
@Order(2) 
public static class HttpBasicAuthConfig extends WebSecurityConfigurerAdapter { 
    @Autowired 
    private DataSource dataSource; 
    @Autowired 
    public void configure(AuthenticationManagerBuilder auth) throws Exception { 
     auth 
     .jdbcAuthentication() 
     .dataSource(dataSource) 
     .usersByUsernameQuery("select username, password, 1 from account where username=?") 
     .authoritiesByUsernameQuery("select username, 'user' from account where username=?") 
     .rolePrefix(""); 
    } 
    @Override 
    protected void configure(HttpSecurity http) throws Exception { 
     http.antMatcher("/auth/login") 
     .authorizeRequests() 
     .anyRequest().hasAuthority("user") 
     .and().httpBasic() 
     .and().csrf().disable(); 
    } 
} 

Testcode : 워드 프로세서

@Autowired 
private FilterChainProxy springSecurityFilterChain; 

private MockMvc securityMockMvc; 

@Before 
public void SetupContext() { 
    securityMockMvc = MockMvcBuilders 
    .webAppContextSetup(wac) 
    .addFilters(springSecurityFilterChain) 
    .apply(springSecurity()).build(); 
} 

@Test 
public void testLoginHttpBasic() throws Exception { 
    MockHttpServletRequestBuilder post = post("/auth/login").with(httpBasic("frank","password")); 
    securityMockMvc.perform(post).andExpect(status().isOk()); 
} 
+0

이 질문에 대한 답이 아니다. 그러나 이것은 볼만한 가치가 있습니다. http://stackoverflow.com/a/10864088/6785908 –

답변