Estoy trabajando en la aplicación jsp-springboot, he implementado el sso usando azure y funciona como se esperaba. he configurado
azure.activedirectory.tenant-id azure.activedirectory.client-id azure.activedirectory.client-secret
También agregué la URL de redirección en application.properties, no agregué ninguna clase de configuración aparte de estos cambios, puedo iniciar sesión con éxito y las llamadas ajax GET están devolviendo 200 códigos de respuesta, pero para las llamadas POST están dando 403 error prohibido
obtener muestra de llamada
$.ajax({ type: 'GET', url: "/getvalue/"+productId, contentType: "text/plain", dataType: 'json', success: function (data) { console.log("Success"); }, error: function (e) { console.log("There was an error with your request..."); } });
Y la llamada de correos
$.ajax({ type: 'POST', url: "/saveValue", data:JSON.stringify(valueObj), contentType: "application/json", success: function (data) { console.log("success: "); }, error: function (e) { console.log("There was an error with your request..."); } });
No estoy seguro de por qué las llamadas posteriores no funcionan.
200 en un GET y 403 en un POST me dice que todavía tiene CSRF habilitado.
La protección CSRF está habilitada de forma predeterminada en la configuración de Java. Todavía podemos desactivarlo si necesitamos:
@Override protected void configure(HttpSecurity http) throws Exception { http .csrf().disable(); }
referencia: https://www.baeldung.com/spring-security-csrf#1-java-configuration
Sin embargo, no recomendaría desactivarlo. Puede consultar https://docs.spring.io/spring-security/reference/5.6.0-RC1/reactive/exploits/csrf.html#webflux-csrf-configure-custom-repository