<bean id="authenticationProcessingFilter"
class="com.pixel.hibernate.HomeAloneAuthenticationProcessingFilter">
<property name="authenticationManager">
<ref bean="authenticationManager" />
</property>
<property name="authenticationFailureUrl">
<value>/back/login.jsp?login_error=1</value>
</property>
<property name="defaultTargetUrl">
<value>/</value>
</property>
<property name="filterProcessesUrl">
<value>/j_acegi_security_check</value>
</property>
<property name="exceptionMappings">
<props>
<prop key="com.eshore.util.ValidaAuthenticationException">
/back/login.jsp?login_error=1
</prop>
</props>
</property>
</bean>
package com.pixel.hibernate;
import java.io.IOException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.acegisecurity.Authentication;
import org.acegisecurity.AuthenticationException;
import org.acegisecurity.ui.webapp.AuthenticationProcessingFilter;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
public class HomeAloneAuthenticationProcessingFilter extends
AuthenticationProcessingFilter {
private static final Log logger = LogFactory
.getLog(HomeAloneAuthenticationProcessingFilter.class);
@Override
protected void onSuccessfulAuthentication(
HttpServletRequest arg0, HttpServletResponse arg1,
Authentication arg2) throws IOException {
logger.info("login successful:"
+ arg0.getParameter("j_username"));
arg0.getSession().setAttribute("userName",
arg0.getParameter("j_username"));
super.onSuccessfulAuthentication(arg0, arg1, arg2);
}
@Override
protected void onPreAuthentication(HttpServletRequest arg0,
HttpServletResponse arg1) throws AuthenticationException,
IOException {
// 验证码验证
String randomCode1 = (String) arg0.getSession().getAttribute(
"rand");
String randomCode2 = (String) arg0.getParameter("rand");
if (!randomCode2.equals(randomCode1)) {
throw new ValidaAuthenticationException(
"valida code error");
}
super.onPreAuthentication(arg0, arg1);
}
}
class ValidaAuthenticationException extends AuthenticationException {
/**
*
*/
private static final long serialVersionUID = -8369047599309913998L;
public ValidaAuthenticationException(String arg0) {
super(arg0);
}
}
posted on 2008-07-28 12:11
lzj520 阅读(395)
评论(0) 编辑 收藏 所属分类:
Spring 、
个人学习日记