2017-06-25 11 views
1

私はスプリングブートアプリケーションを起動しています。私は、URL http://localhost:8080/2を呼び出すと、私は401の例外を取得し、このセキュリティが設定されていないと、スプリングレストコントローラが不正な状態に戻るのはなぜですか?

@RestController 
public class EmailController { 

    @RequestMapping(value = "/2", method = RequestMethod.GET) 
    public int getNumber() { 
     return 2; 
    } 
} 

のように、残りのコントローラを追加しました。

{"timestamp":1498409208660,"status":401,"error": 
"Unauthorized","message":"Full authentication is 
required to access this resource", "path":"/2"} 

私にはセキュリティ設定が全くありません。これはきれいな春のブートプロジェクトです!なぜ私は許可されていない例外を受けているのですか?

+0

は、依存関係ツリー –

+0

を追加します。 – aksss

答えて

0

あなたは何の認証(フォームのログイン、HTTP Basicを、...)設定されていないので、AuthenticationEntryPointisが使用するデフォルトでは、春のセキュリティAPI hereを参照してください。

は、使用するAuthenticationEntryPointを設定します。

authenticationEntryPoint(AuthenticationEntryPoint)が指定されていない場合は、defaultAuthenticationEntryPointFor(AuthenticationEntryPoint、RequestMatcher)が使用されます。デフォルトでは一致するものが見つからないため、最初のAuthenticationEntryPointが使用されます。

これが指定されていない場合、デフォルトではHttp403ForbiddenEntryPointになります。 AuthenticationEntryPointを@ksokolとして設定すると、AuthenticationEntryPointを定義する認証を作成または設定できます。

0

解決策を探している人のために。私はそれがそのアプリケーションにアクセスするためのデフォルトのセキュリティを無視するあなたのメインクラスで@EnableWebSecurityアノテーションを追加私のapplication.ymlに

security: 
    ignored: /** 
+0

セキュリティを必要としない場合、なぜアプリケーションに春のセキュリティを追加しましたか? –

+0

私はしなかった!私は春のブートを使用していると私は私のプロジェクトで春のセキュリティを見つけることができないため、デフォルトで有効にすると思う。 –

+0

これは、Spring Security依存関係がクラスパス上にある場合にのみ有効になります。それ以外の場合、セキュリティは有効化されません。だから、Spring Securityを引き離している依存関係がなければなりません。 –

0

これを追加しました。

のサンプルコードは以下の通りです:uは基本認証は春ブーツでONになっているデフォルトでは、春のセキュリティを追加する場合

@EnableWebSecurity 
    @SpringBootApplication 

    public class SampleApplication { 
     SampleApplication(){} 
     public static void main(String[] args) { 
      SpringApplication.run(SampleApplication .class, args); 
     } 
関連する問題