私は、コントローラのいくつかの種類があります:私は春のセキュリティを使用してい春のMVCでセキュアなRESTfulなWebメソッド
@Controller
public class DefaultController {
@RequestMapping(value="/index.html", method=RequestMethod.GET)
public String indexView(){
return "index";
}
@RequestMapping(value="/some.action", method=RequestMethod.POST)
@ResponseBody
public MyObject indexView(some parametrs....){
MyObject o= daoService.getO(id);
return o;
}
}
:
今<security:global-method-security secured-annotations="enabled" />
<security:http auto-config="true" access-denied-page="/accessDenied.jsp">
<security:form-login login-page="/login.html" login-processing-url="/login" authentication-failure-url="/login.html?login_error=1" default-target-url="/"/>
<security:http-basic/>
<security:intercept-url pattern='/**' access='ROLE_USER' />
<security:logout logout-url="/logout" logout-success-url="/"/>
<security:remember-me services-ref="rememberMeServices"/>
</security:http>
、私の問題は、次の番目です:
を認証されていないユーザがいないAJAXを使用して/some.actionにアクセスすると、Spring Securityは301コマンド(アクセス拒否ページにリダイレクト)を返します。
私が必要とするのは、ユーザーが200 OKを返し、認証エラーメッセージをクライアントまたはイベントに送信した場合でも、最悪の場合は400何らかのエラーを返す場合です。
カスタム認証成功ハンドラを作成する必要があることを理解していますが、それを行うことはできますか?このハンドラを* .action URIにどのように適用できますか?
btw wouldntは正しいコードを返すでしょうか? http://stackoverflow.com/questions/3297048/403-forbidden-vs-401-unauthorized-http-responses – flurdy
@flurdy、yes 401は理にかなっています。 –
これはhttp://www.byteclip.com/spring-security-post-authentication-logic/に役立つかもしれません。この方法でhttp応答コードを変更できます –