2017-03-07 6 views
0

私はanglejsフロントエンドをポートで実行し、バックエンドをポート3000で実行しています。 バックエンドは現在、POSTMANを使用して正常に動作します。localhost上のangularjsで401を取得する:バックエンド用3000:

しかし、私はそれらを結合するとき、私は、次の

enter image description here

取得するバックエンドのための私のセットアップは次のとおりです。

//Global CORS configuration 
@Bean 
public WebMvcConfigurer corsConfigurer() { 
    return new WebMvcConfigurerAdapter() { 
     @Override 
     public void addCorsMappings(CorsRegistry registry) { 
      registry.addMapping("/**").allowedOrigins("*"); 
     } 
    }; 
} 

セキュリティ設定が(何もログインページが、HTTPは、基本的な)ではありません。

@Override 
protected void configure(HttpSecurity http) throws Exception { 
    http 
     .csrf().disable() 
     .authorizeRequests() 
     .antMatchers("/**").hasAnyRole("ADMIN", "USER") 
     .and() 
     .httpBasic() 
     .and() 
     .sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS); 

} 

@Bean 
public CustomBasicAuthenticationEntryPoint getBasicAuthEntryPoint(){ 
    return new CustomBasicAuthenticationEntryPoint(); 
} 

フロントエンド角度:

app.factory('SurveysService', function($q, $http) { 

var encodedUserNameAndPassword = btoa('admin:letme1'); 
// $http.defaults.headers.common.Authorization = 'Basic ' + 
// Base64.encode($scope.username + ':' + $scope.password); 

$http.defaults.headers.common['Authorization'] = 'Basic ' + encodedUserNameAndPassword; 
var ss = 'http://localhost:3000'; 
return { 
    getSurveys : function() { 
     return $q(function(resolve, reject) { 
      $http.get(ss+'/surveys?start=1&limit=10').then(function(response) { 
       resolve(response.data) 
      }, 
      function(response){ 
       reject(response) 
      }) 
     }) 

    }} 

}) 

誰でも問題が分かるでしょうか?

+0

401はCORSの問題ではありません –

+0

権限の問題ですが、もう一度春のセキュリティを調べてください。 'admin'の代わりに' header'を 'ADMIN'に渡して、もう一度やり直してください。 –

+0

@ user3145373私のユーザー 'admin'は、ロール 'ADMIN'を持つメモリ内のユーザーです。私は春のセキュリティを見ているそれを動作させることはできません。ヘッダーを見てどういう意味ですか? – jemrug

答えて

0

私の一部に誤りがあります。私の角のクライアントが不正確な資格情報私がこれらを修正すると、それはすべて良かった。助けようとしたすべての人に感謝する。

関連する問題