Ошибка вылетает при попытке залогинится
@Configuration
@EnableWebSecurity
public class SecurityConfiguration extends WebSecurityConfigurerAdapter {
@Autowired
@Qualifier("customUserDetailsService")
UserDetailsService userDetailsService;
@Autowired
PersistentTokenRepository tokenRepository;
@Autowired
public void configureGlobalSecurity(AuthenticationManagerBuilder auth) throws Exception {
auth.userDetailsService(userDetailsService);
auth.authenticationProvider(authenticationProvider());
}
@Override
protected void configure(HttpSecurity http) throws Exception {
http.authorizeRequests().antMatchers("/admin*/**")
.access("hasRole('ADMIN')")
.and().formLogin().loginPage("/admin/login")
.loginProcessingUrl("/admin/login").usernameParameter("ssoId").passwordParameter("password").and()
.rememberMe().rememberMeParameter("remember-me").tokenRepository(tokenRepository)
.tokenValiditySeconds(604800).and().csrf().and().exceptionHandling().accessDeniedPage("/Access_Denied");
}
@Override
public void configure(WebSecurity web) throws Exception {
web.ignoring().antMatchers("/admin/login", "/admin/logout");
}
@Bean
public PasswordEncoder passwordEncoder() {
return new BCryptPasswordEncoder();
}
@Bean
public DaoAuthenticationProvider authenticationProvider() {
DaoAuthenticationProvider authenticationProvider = new DaoAuthenticationProvider();
authenticationProvider.setUserDetailsService(userDetailsService);
authenticationProvider.setPasswordEncoder(passwordEncoder());
return authenticationProvider;
}
@Bean
public PersistentTokenBasedRememberMeServices getPersistentTokenBasedRememberMeServices() {
PersistentTokenBasedRememberMeServices tokenBasedservice = new PersistentTokenBasedRememberMeServices(
"remember-me", userDetailsService, tokenRepository);
return tokenBasedservice;
}
@Bean
public AuthenticationTrustResolver getAuthenticationTrustResolver() {
return new AuthenticationTrustResolverImpl();
}
}
и вот моя форма:
<form action="/admin/login" method="post" class="form-horizontal">
<c:if test="${param.error != null}">
<div class="alert alert-danger">
<p>Invalid username and password.</p>
</div>
</c:if>
<c:if test="${param.logout != null}">
<div class="alert alert-success">
<p>You have been logged out successfully.</p>
</div>
</c:if>
<div class="input-group input-sm">
<label class="input-group-addon" for="username"><i class="fa fa-user"></i></label>
<input type="text" class="form-control" id="username" name="ssoId" placeholder="Enter Username" required>
</div>
<div class="input-group input-sm">
<label class="input-group-addon" for="password"><i class="fa fa-lock"></i></label>
<input type="password" class="form-control" id="password" name="password" placeholder="Enter Password" required>
</div>
<div class="input-group input-sm">
<div class="checkbox">
<label><input type="checkbox" id="rememberme" name="remember-me"> Remember Me</label>
</div>
</div>
<input type="hidden" name="${_csrf.parameterName}" value="${_csrf.token}" />
<div class="form-actions">
<input type="submit"
class="btn btn-block btn-primary btn-default" value="Log in">
</div>
</form>
в контроллере:
@RequestMapping(value = "/admin/login", method = {RequestMethod.GET})
public ModelAndView loginPage() {
return new ModelAndView("security/login");
}
если в контроллере добавить
@RequestMapping(value = "/admin/login", method = {RequestMethod.POST})
public ModelAndView loginPagePost() {
return new ModelAndView("security/login");
}
то ошибки нет, но и залогинивания тоже нет
если закомментировать метод configure(WebSecurity web) и убрать права для админа, то все отрабатывает. по этому мне кажется что проблема в методе configure(WebSecurity web)
Данные формы отправляются POST запросом, поэтому в контроллере надо поправить:
@RequestMapping(value = "/admin/login", method = {RequestMethod.POST})
Ну или создать другой метод, для обработки именно POST запроса.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Какие существуют виды рекламных бордов и как выбрать подходящий?
У меня проект на java, я сделал опцию сохранения данных через JFileChooserНачальство мне высказало замечание, дескать, проект под русскоязычного...
Надо получить номер входящего звонка, и при получении номер перейти на следующий activity
У меня есть HashMap конвертированный в ByteArray на JavaКак мне ByteArray на питоне конвертировать в map на python и обратно?