Cześć,
mam zaimplementowane logowanie wykorzystując Springowy interface UserDetailsService
. Nie rozumiem czemu gdy loguje się do aplikacji za pomocą UI napisanego w Thymeleaf logowanie działa jak najbardziej. W momencie gdy chce zalogować poprzez Postmana już nie. Nie mogę dotrzeć do tej magii Springowej i zrozumieć jak to zapytanie z Thymeleaf jest procesowane.
Tak wygląda mój formularz w Thymeleaf
<form th:action="@{/login}" th:object="${employee}" method="post">
<div class="row">
<div class="col-sm-6 offset-sm-3">
<div class="form-group">
<label for="loginEmail">Login</label>
<input th:field="*{username}" type="text" class="form-control" id="loginEmail"
aria-describedby="emailHelp" autocomplete="off" placeholder="Login"/>
</div>
</div>
</div>
<div class="row">
<div class="col-sm-6 offset-sm-3">
<div class="form-group">
<label for="loginPassword">Hasło</label>
<input th:field="*{password}" type="password" class="form-control" id="loginPassword"
placeholder="Hasło" autocomplete="off"/>
</div>
</div>
</div>
<div class="row">
<div class="col-sm-6 offset-sm-3">
<div class="form-group text-right">
<button type="submit" class="btn btn-success">Zaloguj</button>
</div>
</div>
</div>
</form>
Natomiast tak wygląda konfiguracja Security
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.authorizeRequests()
.antMatchers("/webjars/**", "/").permitAll()
.and()
.headers().frameOptions().disable()
.and()
.csrf().disable()
.authorizeRequests()
.antMatchers("/orderList", "/addNewProduct", "/addCategory", "/h2/**").hasRole("OWNER")
.and()
.formLogin()
.loginPage("/login").permitAll()
.successHandler(loginSuccessHandler())
.failureHandler(loginFailureHandler())
.and()
.logout().permitAll()
.logoutSuccessUrl("/");
}
private AuthenticationSuccessHandler loginSuccessHandler() {
return (request, response, authentication) -> response.sendRedirect("/orderList");
}
private AuthenticationFailureHandler loginFailureHandler() {
return (request, response, exception) -> {
request.getSession().setAttribute("loginError", true);
response.sendRedirect("/login");
};
}
W momencie gdy się loguję przez aplikację w przeglądarce w debugu poprawnie ładuje mi user name
Jednak gdy robię to samo (przynajmniej tak mi się wydaje, że to samo, że tak to zapytanie wygląda) w Postmanie username jest pusty
W Postmanie zapytanie wysyłam tak
Nie wiem czy przez Postmana to źle robię, czy może problem leży w zupełnie innym miejscu.
Poproszę o wskazówki.
- screenshot-20180427000743.png (26 KB) - ściągnięć: 125
- screenshot-20180427000648.png (32 KB) - ściągnięć: 181
- screenshot-20180427000510.png (34 KB) - ściągnięć: 112