这是我的春季安全文件:
<http auto-config="true" use-expressions="true">
<intercept-url pattern="/login" access="isAnonymous()" />
<intercept-url pattern="/stat" access="hasRole('ROLE_USER')" />
<intercept-url pattern="/articles" access="hasRole('ROLE_USER')" />
<intercept-url pattern="/**" access="hasRole('ROLE_ADMIN')" />
<form-login login-page="/index.html#/login"
default-target-url="/index.html#/articles"
authentication-failure-url="/index.html#/login?error"
username-parameter="username" password-parameter="password" />
<logout logout-success-url="/index.html#/login?logout" />
</http>
这里我提到截取网址&#39; / **&#39;最后只是。
以下是我的web.xml:
<servlet>
<servlet-name>mvc-dispatcher</servlet-name>
<servlet-class>
org.springframework.web.servlet.DispatcherServlet
</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:dispatcher-config.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>mvc-dispatcher</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
<!-- for spring security -->
<filter>
<filter-name>springSecurityFilterChain</filter-name>
<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
</filter>
<filter-mapping>
<filter-name>springSecurityFilterChain</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring-security.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
但是我仍然遇到重定向问题,/ login和其他url模式没有被映射到处理程序上!
这是app.js:
searchApp.config([ '$routeProvider', function($routeProvider) {
$routeProvider.when('/articles', {
templateUrl : 'partials/articles-list-accordian.html',
controller : 'ArticlesController'
}).when('/login', {
templateUrl : 'partials/login.html',
controller : 'LoginControllers'
}).when('/stat', {
templateUrl : 'partials/job-stat.html',
controller : 'JobStatController'
}).otherwise({
/*redirectTo : '/welcome'*/
redirectTo : '/articles'
});
} ]);
请在这里指导我,我是新手是春天安全,因此可能会犯一些愚蠢的错误..
答案 0 :(得分:0)
有一个很好的教程可以使用AngularJS应用Spring安全性,这绝对不是一件容易的事,你必须在应用程序中做一些更改。
例如,建议使用httpBasic安全性而不是formLogin身份验证方法。您还需要使用HTTP标头将您的凭据发送到您的服务器,内容应该被编码。
你可以在这里阅读如何做到这一点:
https://spring.io/guides/tutorials/spring-security-and-angular-js/
我已成功使用指定的技术堆栈实现它,如果您需要进一步的帮助,请告诉我。