@parkito

Почему spring security не пропускает некоторые запросы?

Здравствуйте. Помогите, пожалуйста, решить проблему.
Настроен Spring security
<http realm="JavaStudy example" use-expressions="false"
          authentication-manager-ref="dao-auth"
          access-decision-manager-ref="accessDecisionManager">
        <intercept-url pattern="/admin**" access="Manager"/>
        <intercept-url pattern="/user**" access="userAvailable"/>
        <!--<intercept-url pattern="/admin/admin**" access="Manager"/>-->
        <!--<intercept-url pattern="/user/user**" access="userAvailable"/>-->
        <form-login login-page="/login" authentication-failure-url="/login-denied"
                    username-parameter="username" password-parameter="password"
                    default-target-url="/main"/>
        <logout invalidate-session="true" logout-success-url="/"
                logout-url="/"/>
        <access-denied-handler error-page="/denied"/>
        <session-management invalid-session-url="/">
            <concurrency-control max-sessions="1"
                                 expired-url="/login"/>
        </session-management>
        <!--remember me-->
        <remember-me token-validity-seconds="1209600"
                     remember-me-parameter="remember-me"
                     user-service-ref="userDetailsService"/>
    </http>


Есть два сервлета

@RequestMapping(value = "/userNumberOperations", method = RequestMethod.GET)
    public String userNumberOperations(HttpServletRequest request, Locale locale, Model model) {
        User user = (User) request.getSession().getAttribute("currentUser");
        model.addAttribute("contracts", contractService.getAllContractsForUser(user.getUserId()));
        return "user/userNumberOperations";
    }


И точно такой же, но с другим методом реквеста

@RequestMapping(value = "/userNumberOperations", method = RequestMethod.POST)
    public String userNumberOperations(HttpServletRequest request, Locale locale, Model model) {
        User user = (User) request.getSession().getAttribute("currentUser");
        model.addAttribute("contracts", contractService.getAllContractsForUser(user.getUserId()));
        return "user/userNumberOperations";
    }


Spring пускает на первый сервлет. Но когда со страницы через ajax
var xhr = new XMLHttpRequest();
                                xhr.open("POST", "userNumberOperations, false);
                                xhr.send();

пытаюсь вызвать второй, security отвергает запрос и посылает меня на страницу /denied.
Почему он это делает?
  • Вопрос задан
  • 388 просмотров
Пригласить эксперта
Ответы на вопрос 1
@aol-nnov
а кукисы в XMLHttpRequest или иные логин-пароли Пушкин будет вкладывать?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы