2017-03-09 73 views
-2

我想学习Spring安全性,并且遇到了问题。如何在Spring安全中登录后访问资源?

我有一个前端项目&后端项目。

前端项目中使用Node.js的HTTP服务器在localhost:8000

后端项目使用Spring启动Tomcat的本地主机上:8090

我只是添加春季安全到我的后端项目。

现在的问题是我登录login.html,并重定向到index.html,但在index.html我想访问资源,在我的后端项目,但春天安全总是给我401错误,如果我输入url(例如http://localhost://8090/getName),浏览器会改变,并要求我输入用户名和密码。完成后,我输入另一个网址(http://localhost://8090/getName2),我得到了正确的结果。似乎我没有登录。我的问题是什么?

这里是我的Spring配置:

@Override 
protected void configure(HttpSecurity http) throws Exception{ 

    http 
      .httpBasic() 
      .and() 
      .authorizeRequests() 
      .anyRequest().authenticated() 
     ; 
} 

    @Override 
public void configure(WebSecurity web) throws Exception { 
    web.ignoring().antMatchers(HttpMethod.OPTIONS, "/**"); 
} 

,这是我的控制器

@RequestMapping("/login") 
    String login(Principal principal){ 
     return principal.getName(); 
    } 

,这是我的弗朗端登录页面的JS,我就用角JS

loginApp.controller('navigation', function($rootScope, $http, $location, $scope, $window) { 

$scope.login = function() { 
    var h = {authorization : "Basic "+ btoa($scope.credentials.username + ":" + $scope.credentials.password)    }; 
    $http.get('http://localhost:8090/login/',{headers : h}).then(function(response) { 
     onsole.log(response.data); 
     $window.location.href='/index.html'; 
    }); 
}; 
    }); 
+0

请查看[编辑历史](https://stackoverflow.com/posts/42699479/revisions)查看需要编辑多少才能使其可读。我们并不要求人们在这里使用完美的英语,但如果你喜欢全小写和txtspk,Stack Overflow可能不适合你。 – halfer

+0

- 我对此感到抱歉。这是因为我还是不习惯'使用statckoverfolw'。感谢您的提醒。我稍后会关注这一点。 – Dade

回答

相关问题