我正在使用教程,该教程描述了如何使用Spring Boot,Spring Security和AngularJS编写模块化Project单页面应用程序
https://github.com/spring-guides/tut-spring-security-and-angular-js/tree/master/oauth2-vanilla
和这个项目
https://github.com/sharmaritesh/spring-angularjs-oauth2-sample
我无法注销当前登录的用户。 如果你点击"注销"在链接中,您将看到主页更改(不再显示问候语),因此用户不再使用UI服务器进行身份验证。点击返回"登录"虽然您实际上不需要返回授权服务器中的身份验证和批准周期(因为您尚未注销)。
我是Spring的新手,希望有些用户可以退出并再次返回登录页面。 请有人帮我或提出解决这个问题的建议吗?
答案 0 :(得分:0)
这是我们的项目代码。对我们来说工作正常。尝试一次。
安全配置:
@Override
protected void configure(HttpSecurity http) throws Exception {
http.httpBasic().and().authorizeRequests().antMatchers("/public/**")
.permitAll().antMatchers("/admin/**").hasAuthority("admin")
.antMatchers("/user/**").hasAuthority("user")
.and()
.logout()
// Logout requires form submit. Bypassing the same.
.logoutRequestMatcher(new AntPathRequestMatcher("/logout"))
.logoutSuccessUrl("/index.html").and()
.addFilterAfter(new CsrfHeaderFilter(), CsrfFilter.class)
.csrf().disable();/*
* requireCsrfProtectionMatcher(new
* CsrfRequestMatcher())
* .csrfTokenRepository(csrfTokenRepository());
*/
}
angularjs:
$scope.logout = function() {
$http.get('/logout').then(function() {
$location.url('/');
})
}
路由:
app.config([ '$routeProvider', function($routeProvider) {
$routeProvider.when('/admin', {
templateUrl : 'admin.html',
}).when('/dashboard', {
templateUrl : 'dashboard.html'
}).when('/preferences', {
templateUrl : 'preferences.html',
}).otherwise('/', {
templateUrl : 'index.html',
})
} ]);