Why does not work @PreAuthorize?

 
 
 
Сообщения:110
Не работает защита метода.При нажатии на кнопку выполняется метод likeupForSpittle, хотя я не авторизован

@PreAuthorize("hasRole('ROLE_USER')")
@RequestMapping(value="/like/{id_spittle}/{number}", method=RequestMethod.GET)
public String likeupForSpittle(......)
{
System.out.println("EnterInlikeupForSpittle" );
.....
}
Полагаю ошибка где то в конфигурации? Может схему надо для этих конфигураций другую?
web.xml:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
         http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
         version="3.1">

    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>
            classpath:security.xml
            WEB-INF/dispatcher-servlet.xml
        </param-value>
    </context-param>
....


в security.xml
<?xml version="1.0" encoding="UTF-8"?>
<b:beans xmlns="http://www.springframework.org/schema/security"
         xmlns:b="http://www.springframework.org/schema/beans"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xmlns:security="http://www.springframework.org/schema/security"
         xsi:schemaLocation="http://www.springframework.org/schema/security
	http://www.springframework.org/schema/security/spring-security-4.1.xsd
	http://www.springframework.org/schema/beans
	http://www.springframework.org/schema/beans/spring-beans-4.1.xsd">


    <!-- Включает поддержку аннотаций по безопасности-->
    <security:global-method-security pre-post-annotations="enabled" />
....


dispacther-servlet.xml:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:mvc="http://www.springframework.org/schema/mvc"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:task="http://www.springframework.org/schema/task"
       xmlns:tx="http://www.springframework.org/schema/tx"
       xmlns:p="http://www.springframework.org/schema/p"
       xsi:schemaLocation="http://www.springframework.org/schema/mvc
       http://www.springframework.org/schema/mvc/spring-mvc.xsd
		http://www.springframework.org/schema/beans
		http://www.springframework.org/schema/beans/spring-beans.xsd
		http://www.springframework.org/schema/context
		http://www.springframework.org/schema/context/spring-context.xsd
		http://www.springframework.org/schema/tx
		http://www.springframework.org/schema/tx/spring-tx.xsd
		http://www.springframework.org/schema/task
       http://www.springframework.org/schema/task/spring-task.xsd">

Кунг-фу принцип: не сталкиваться лоб в лоб с внешними силами,а прогнуться под их давлением с тем, чтобы, разогнувшись, стать еще сильнее.
 
 
Сообщения:456
V_JP:
Полагаю ошибка где то в конфигурации?

Это 100%
На мой взгляд у вас каша какая-то. Файлы конфигураций лежат в разных местах (security.xml в ресурсах, а dispatcher-servlet.xml зачем-то в в WEB-INF засунули.)
В той части web.xml, что вы привели задается так называемый корневой контекст приложения, т.е. там указывается файл (например myapp-root.xml) с настройками доступными всему приложению (подключение использования аннотаций, ковертеры/форматтеры и т.п.), в нем же можно подключить настройки безопасности (<import resource="security.xml"/>).
Диспетчер сервлетов в web.xml настраивается как то так:
<servlet>
        <servlet-name>myServlet</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>
                classpath:dispatcher-servlet.xml
            </param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
        <servlet-name>myServlet</servlet-name>
        <url-pattern>/</url-pattern>
</servlet-mapping>
 
 
Сообщения:110
izon:
V_JP:
Полагаю ошибка где то в конфигурации?

Это 100%
На мой взгляд у вас каша какая-то. Файлы конфигураций лежат в разных местах (security.xml в ресурсах, а dispatcher-servlet.xml зачем-то в в WEB-INF засунули.)
В той части web.xml, что вы привели задается так называемый корневой контекст приложения, т.е. там указывается файл (например myapp-root.xml) с настройками доступными всему приложению (подключение использования аннотаций, ковертеры/форматтеры и т.п.), в нем же можно подключить настройки безопасности (<import resource="security.xml"/>).
Диспетчер сервлетов в web.xml настраивается как то так:
<servlet>
        <servlet-name>myServlet</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>
                classpath:dispatcher-servlet.xml
            </param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
        <servlet-name>myServlet</servlet-name>
        <url-pattern>/</url-pattern>
</servlet-mapping>

dispatcher-servlet.xml думал ложить в WEB-INF, так как к нему обращается сервлет <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> и предполагал что может не быть найденным этим же DispatcherServlet. Now, ситуация прояснилась.

Кунг-фу принцип: не сталкиваться лоб в лоб с внешними силами,а прогнуться под их давлением с тем, чтобы, разогнувшись, стать еще сильнее.
 
Модераторы:Нет
Сейчас эту тему просматривают:Нет