0

Я пытаюсь добавить безопасность в приложение для отдыха.Несанкционированный доступ с пружинной защитой

Я после этого учебника: http://www.codesandnotes.be/2014/10/31/restful-authentication-using-spring-security-on-spring-boot-and-jquery-as-a-web-client/

Я настроил мой класс, который расширяет WebSecurityConfigurerAdapter.

http.authorizeRequests().antMatchers("/rest/**").authenticated(); 
http.csrf().disable(); 
http.exceptionHandling().authenticationEntryPoint(authenticationEntryPoint); 
http.formLogin().successHandler(authenticationSuccessHandler); 
http.formLogin().failureHandler(authenticationFailureHandler); 

У меня есть login.html, index.html, который загрузки (с помощью JQuery) какой-либо другой HTML-файл в index.html.

Я пытаюсь получить доступ к службе с завитком

curl -i -X POST -d username=test -d password=test http://localhost:8080/rest/cities 

Я получаю

HTTP/1.1 401 Unauthorized 

Все URL с остальными крепится, но я предоставить имя пользователя и пароль должны слово.

Когда я отлаживаю, я вижу, что мой класс, который реализует UserDetailsService, у которого есть метод loadUserByUsername, никогда не вызывается.

Есть что-то, кто не делает ссылку правильно.

ответ

1

Чтобы получить доступ к ограниченному ресурсу, вам необходимо войти в систему. Spring security обеспечивает точку входа по умолчанию для выполнения вашей проверки подлинности. Вот что делает эта часть вашей данной ссылке:

jQuery(document).ready(function ($) { 
    $('#loginform').submit(function (event) { 
     event.preventDefault(); 
     var data = 'username=' + $('#username').val() + '&password=' + $('#password').val(); 
     $.ajax({ 
      data: data, 
      timeout: 1000, 
      type: 'POST', 
      url: '/login' 

     }).done(function(data, textStatus, jqXHR) { 
      var preLoginInfo = JSON.parse($.cookie('dashboard.pre.login.request')); 
      window.location = preLoginInfo.url; 

     }).fail(function(jqXHR, textStatus, errorThrown) { 
      alert('Booh! Wrong credentials, try again!'); 
     }); 
    }); 
}); 

Так что вам нужно POST в /Логин URL с вашим именем пользователя и пароль параметров. Вот как это делается с завитком:

curl -i -X POST -d username=user -d password=userPass -c /opt/cookies.txt 
http://localhost:8080/rest/login 

Что это делает, чтобы войти с учетными данными и хранить данное печенье в cookies.txt файл. Тогда вам нужно просто прикрепить этот печенье в каждом запросе выполняется, чтобы получить разрешение на сервере:

curl -i --header "Accept:application/json" -X GET -b /opt/cookies.txt 
http://localhost:8080/rest/cities 

Смотри также:

+0

спасибо, что работа , просто нужно посмотреть, есть ли способ защитить мой html-файл. –

Смежные вопросы