我正在开发网站(HTML,javascript,jQuery,Ajax,css),其中,我在服务器端使用Spring的基本身份验证。 我在HTTP请求的Authorization标头中发送Basic =“Base64 Endcoded Username& password”。 登录在正确的用户名和&密码。 但是在失败时,它会显示我输入用户名的默认提示&密码。 我该怎么办才能显示提示,相反我应该得到一个错误代码。 这样,我就可以显示正确的失败信息。
Spring Security
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security-3.0.3.xsd“>
<http create-session="never">
<intercept-url pattern="/rest/user*" access="ROLE_USER" />
<logout logout-success-url="/index.jsp" invalidate-session="true" />
<http-basic />
</http>
<authentication-manager>
<authentication-provider>
<password-encoder hash="md5"/>
<jdbc-user-service data-source-ref="dataSource"
users-by-username-query="
select UserName as username, Password as user_password,true
from User where username=?"
authorities-by-username-query="
select UserName as username,'ROLE_USER' from User where username=?"
/>
</authentication-provider>
</authentication-manager>
答案 0 :(得分:1)
经过这么多的障碍......终于我做到了。
我已将其发布在我的博客上
http://swapgo20.wordpress.com/2012/10/21/website-spring-security-basic-authorization-in-javascript/
答案 1 :(得分:0)
默认情况下,当验证过程出现故障时,类AuthenticationEntryPoint
会将用户重定向到登录页面。要更改默认行为并提供自定义身份验证失败页面,您可以在security.xml文件中指定一个条目
<form-login login-processing-url="your-login-check" login-page="/login"
username-parameter="j_username" password-parameter="j_password"
authentication-failure-url="/login/authenticationFailure" />
那应该是它!您将被重定向到xml中authentication-failure-url
attributte中指定的页面。