У меня есть простой spring mvc + spring security
приложениеSpring безопасности не awares приставки зрения Spring MVC в
Я заявляю, когда пользователь попробовать .../hello
hello.jsp
страница из /WEB-INF/pages/
пути отображается правильно:
@RequestMapping(value = "/hello")
public ModelAndView doLogin() {
return new ModelAndView("hello");
}
dispatcher-servlet.xml
:
<mvc:annotation-driven/>
<context:component-scan base-package="com"/>
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/pages/"/>
<property name="suffix" value=".jsp"/>
</bean>
И теперь я объявляю весной о безопасности, когда пользователь хочет .../hello
i t должен быть быть пользователем.
Но когда я попробую http://localhost:8080/hello/
, отобразится страница hello.jsp
с отключением принудительной аутентификации.
Когда я попробую http://localhost:8080/pages/hello.jsp
, он перенаправляет меня на страницу login
, но почему весна безопасности не замечает prefix path
весны mvc?
UPDATE
security-config.xml
<security:http auto-config="true" use-expressions="true">
<security:intercept-url pattern="/pages/hello.jsp" access="hasRole('ROLE_USER')"/>
</security:http>
<security:authentication-manager>
<security:authentication-provider>
<security:user-service>
<security:user name="sajjad" authorities="ROLE_USER" password="200200"/>
</security:user-service>
</security:authentication-provider>
</security:authentication-manager>
Когда я использую pattern="/hello"
и пользователь пытается http://localhost:8080/hello/
пользователя не перенаправляет на login
страницы.
Это не сработало для меня. – CVV
Поскольку браузер автоматически добавляет дополнительную '/' в конце URL-адреса, я добавляю '/' и конец шаблона и удаляю '/ pages /' из url. – CVV