如何从自定义身份验证提供程序类更改 Json 格式的 BadCredentialsException、UserNameNotFound 异常消息
Posted
技术标签:
【中文标题】如何从自定义身份验证提供程序类更改 Json 格式的 BadCredentialsException、UserNameNotFound 异常消息【英文标题】:How to change the BadCredentialsException,UserNameNotFound Exception Messages in Json format from custom Authentication Provider class 【发布时间】:2016-11-01 18:23:22 【问题描述】:我尝试了不同的方法,但到目前为止对我来说没有任何效果,并且仍然无法以 json 格式从我的自定义身份验证提供程序发送异常响应。我正在使用 xml 配置
我尝试过的事情
1.customAuthenticationFailureHandler
2 自定义入口点
3.CustomAccessDenied
我在前端有 angular js,如果身份验证失败,我想要一条 json 消息,但现在我抛出 BadCredentialsException,UsernotFoundException 并在 rest 客户端中获取 html 数据。
任何帮助...
【问题讨论】:
【参考方案1】:好的,所以我得到了我的问题的答案......
您必须编写实现 AuthenticationEntryPoint 接口的 customAuthenticationEntryPoint 类
在你的 securtiy-config.xml 文件中
你必须添加 entry-point-ref="restAuthenticationEntryPoint"
<http auto-config='true' use-expressions="true"
entry-point-ref="restAuthenticationEntryPoint">
<http-basic entry-point-ref="restAuthenticationEntryPoint"/>
<intercept-url pattern="/user" access="hasRole('ROLE_USER')" />
<access-denied-handler ref="securityAccessDeniedHandler" />
<form-login authentication-success-handler-ref="mySuccessHandler"
authentication-failure-handler-ref="authenticationFailureHandler" /></http>
那么这里要注意的重点是你必须在 http 和 http-basic 标签中提供 entry-point-ref .
【讨论】:
以上是关于如何从自定义身份验证提供程序类更改 Json 格式的 BadCredentialsException、UserNameNotFound 异常消息的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 firebase_auth 和 provider 检测身份验证更改