У меня есть представление для получения пароля, который является общедоступным, но не вызывает контроллер, он работает только в том случае, если пользователь входит в систему и входит в это представление через URL-адрес. Я использую пружинный ботинок 1.5.14 с пружинной защитой.
function validar(){
var codigo= $('#codigo').val();
$.ajax({
type : "GET",
url : "/host/validar",
data: {
"codigo" : codigo
},
success: function(result) {
alert("success");
},
error : function(e) {
alert("error");
}
});
}
HTML с тимьяном
<div class="x_content">
<section class="text-center">
<h5><span>Ingrese codigo</span></h5>
<form id="formValidar">
<div>
<input type="text" class="form-control" placeholder="codigo" required="" id="codigo" name="codigo" />
</div>
<br>
<div>
<button class="btn btn-dark" type="button" onclick="validar()">Validar</button>
</div>
</form>
</section>
</div>
контроллер
@RequestMapping(value = "/validar", method = RequestMethod.GET)
public @ResponseBody String validar(
@RequestParam("codigo") String codigo){
System.out.println("entro sdgsdgdsg");
System.out.println("codigo: "+codigo);
Usuario usuario = usuarioService.buscarPorCodigo(codigo);
if (usuario == null){
return "pagina-validar";
}
return "nueva-pagina";
}
edit: добавить настройку безопасности.
@Override
protected void configure(HttpSecurity http) throws Exception {
http.authorizeRequests().antMatchers("/css/**", "/js/**","/images/**","/build/**","/vendors/**","/recuperar-clave","/nueva-clave").permitAll()
.anyRequest().authenticated()
.and()
.formLogin()
.successHandler(successHandler)
.loginPage("/login").permitAll()
.and()
.logout().permitAll();
}