2 回答
TA贡献1805条经验 获得超9个赞
详细说明 zfChaos 的答案,这是一个很好的线索,但没有提供足够的信息来使响应成为 JSON 响应:
您还应该设置内容类型和字符编码。然后,编写您的 JSON 响应(在本例中我使用了一个简单的 String,当然使用类和 an 会更方便ObjectMapper)。
这是一个完整的例子:
@Configuration
public class SecurityConfiguration extends WebSecurityConfigurerAdapter {
@Override
public void configure(HttpSecurity httpSecurity) throws Exception {
httpSecurity
.oauth2Login(login -> login
.failureHandler((request, response, exception) -> {
response.setContentType("application/json");
response.setStatus(401);
response.setCharacterEncoding("UTF-8");
response.getWriter().write("{ \"msg\": \"foo\" }");
})
);
}
}
TA贡献1887条经验 获得超5个赞
将自定义添加AuthenticationFailureHandler到您的安全配置,然后在自定义实现中准备响应:
http.oauth2Login()
.failureHandler(customFailureHandler)
失败处理程序示例:
public class CustomFailureHandler extends SimpleUrlAuthenticationFailureHandler {
@Override
public void onAuthenticationFailure(HttpServletRequest request, HttpServletResponse response, AuthenticationException exception) throws IOException {
response.sendError(401, "XML HERE");
}
}
- 2 回答
- 0 关注
- 109 浏览
添加回答
举报