使用BasicAuthenticationFilter在auth失败后不要重定向用户

时间:2014-06-29 07:54:11

标签: java spring spring-security

我有两种方式可以在我的系统上进行身份验证。使用登录密码标准并使用BasicAuthentication进行API调用。当标准版本失败时,我将重定向发送到登录页面,但是当BasicAuth失败时,我想返回json响应。

我也定义了自定义AccessDecisionManager,并且在WebExpressionVoter返回access_denied之后,抛出了AccessDeniedException,在休息客户端中我看到了主页的html代码。 我应该如何配置我的spring安全性,以返回json响应?

由于

1 个答案:

答案 0 :(得分:0)

您应该实现自定义org.springframework.security.web.access.AccessDeniedHandler,它可以根据需要从handle方法发送JSON响应。只要handle拒绝访问,就会自动调用AccessDecisionManager

然后在Spring Security配置中将类的实例添加为bean,并从API的<security:http>定义中引用它,如下所示:

 <security:http pattern="/API/**">
     <security:http-basic />
     <security:access-denied-handler ref="myDeniedHandler"/>
 </security:http>