это файл конфигурации аутентификации со стороны клиента.
@Configuration
@EnableOAuth2Sso
public class OauthConfig extends WebSecurityConfigurerAdapter{
@Value("${winni.auth.exit}")
private String authExit;
@Override
public void configure(HttpSecurity http) throws Exception {
http.antMatcher("/**")
.authorizeRequests()
.antMatchers("/", "/login**")
.permitAll()
.anyRequest()
.authenticated()
.and()
.logout().logoutSuccessUrl(authExit);
}
@Override
public void configure(WebSecurity web) throws Exception {
web.ignoring().antMatchers("/assets/**","/application.properties");
}
}
это код ajax, который отправляет запрос к контроллеру пружины
$('#saveHtmlTemplate').on('click', function () {
updateHtmlTemplate();
});
function updateHtmlTemplate() {
var uri = contextPathUri + 'template/xhr/save';
var templateId = $('#templateId').val();
var htmlData = $('#hiddenContent').val();
var jqxhr = $.ajax({
url: uri,
type: "POST",
cache: false,
dataType: "json",
data: {
templateId: templateId,
html: htmlData
}
});
jqxhr.done(function (response) {
if (response.success == "true") {
alert("Updated template successfully");
location.reload();
} else {
alert(response.message);
}
});
jqxhr.fail(function (data) {
alert("Server error encountered");
});
jqxhr.always(function (data) {
});
}
Контроллер пружины для указанного выше запроса
@RequestMapping(value = "/save", method = RequestMethod.POST, produces = {"application/json"})
@ResponseBody
public Map<String, String> saveTemplate(@RequestParam Map<String, String> parameters, HttpServletRequest request) {
Map<String, String> resp = new HashMap<>();
EmailTemplate emailTemplate = emailTemplateService.getEmailTemplateById(Long.valueOf(parameters.get("templateId")));
emailTemplate.setViewTemplate(parameters.get("html"));
emailTemplateService.saveEmailTemplate(emailTemplate);
resp.put("success", "true");
return resp;
}
, когда я использую crsf.disable в файле конфигурации OauthConfig, тогда ajax отлично поразил мой контроллер ... без этого я получил ошибку 403 .. как я решаю свою проблему, не отключая crsf.