Login.tml <html xmlns:t="http://tapestry.apache.org/schema/tapestry_5_0_0.xsd">
<head> <link href="${asset:context:css/style.css}" rel="stylesheet" type="text/css" /> <title>YOUR TITLE HERE!</title> </head> <body scroll="no"> <div class="header"> <div class="header_interior"><img src="${asset:context:/images/logo.gif}" alt="Logo" width="44" height="44" style="float:left; margin-right:10px;" /> <h1 class="title">Call Center for JILIN Tax Revenue </h1> </div> </div> <div class="header_shadow"> </div> <div class="content_interior"> <div class="login_table"> <br /> <br/> <br/> <t:form t:id="loginForm"> <t:errors/> <table> <tr> <td>UserName:</td> <td><input t:type="TextField" type="text" t:id="j_username" /></td> </tr> <tr> <td>Password:</td> <td><input t:type="PasswordField" type="password" t:id="j_password" /></td> </tr> <tr> <td></td> <td><input type="submit" t:type="submit" t:id="loginButton" /></td> </tr> </table> </t:form> </div> </div> <div class="footer"><div class="footer-inner"> <br clear="all" /> <hr width="100%" noshade="noshade" style="border-top:1px solid #FFFFFF; border-bottom: none; margin-bottom:5px;" /> <div style="text-align:center;">Copyright ? 2008 YourName <!-- Thanks Again --> </div> </div><br clear="all" /></div> </body> </html> login.java package com.callcenter.web.pages; import org.apache.tapestry.services.RequestGlobals; import org.apache.tapestry.ioc.annotations.*; import org.apache.tapestry.services.Response; import org.springframework.security.providers.UsernamePasswordAuthenticationToken; import org.springframework.security.Authentication; import org.springframework.security.AuthenticationManager; import org.springframework.security.AuthenticationException; import org.springframework.security.context.SecurityContextHolder; import org.springframework.security.ui.savedrequest.SavedRequest; import org.springframework.security.ui.AbstractProcessingFilter; import java.io.IOException; public class Login { private String j_username; private String j_password; public String getJ_username() { return j_username; } public void setJ_username(String j_username) { this.j_username = j_username; } public String getJ_password() { return j_password; } public void setJ_password(String j_password) { this.j_password = j_password; } /* * Process the event from login button */ @Inject private RequestGlobals requestGlobals; @Inject private AuthenticationManager authenticationManager; Object onSelectedFromLoginButton() throws IOException{ //requestGlobals.getResponse().sendRedirect("j_spring_security_check?j_usern ame="+j_username+"&j_password="+j_password); UsernamePasswordAuthenticationToken authRequest=new UsernamePasswordAuthenticationToken(getJ_username(),getJ_password()); Authentication authResult; /** * */ try{ authResult=authenticationManager.authenticate(authRequest); } catch(final AuthenticationException failed){ return null; } SecurityContextHolder.getContext().setAuthentication(authResult); SavedRequest savedRequest=(SavedRequest)requestGlobals.getRequest().getSession(false).get Attribute(AbstractProcessingFilter.SPRING_SECURITY_SAVED_REQUEST_KEY); if(savedRequest!=null){ requestGlobals.getResponse().sendRedirect(savedRequest.getFullRequestUrl()); return null; } else{ return "/login"; } } } Web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app id="WebApp_ID" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> <display-name> CallCenter </display-name> <context-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/applicationContext.xml /WEB-INF/applicationContext-security.xml</param-value> </context-param> <context-param> <param-name>tapestry.app-package</param-name> <param-value>com.callcenter.web</param-value> </context-param> <!-- Integration with acegi start --> <filter> <filter-name>AcegiFilterChainProxy</filter-name> <filter-class>org.springframework.security.util.FilterToBeanProxy</filter-cl ass> <init-param> <param-name>targetClass</param-name> <param-value>org.springframework.security.util.FilterChainProxy</param-value > </init-param> </filter> <filter-mapping> <filter-name>AcegiFilterChainProxy</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <!-- Integration with acegi end --> <!-- Integration with spring start --> <filter> <filter-name>app</filter-name> <filter-class>org.apache.tapestry.spring.TapestrySpringFilter</filter-class> </filter> <filter-mapping> <filter-name>app</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <!-- Integration with spring end --> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</liste ner-class> </listener> <!-- Integration with spring end --> <listener> <listener-class>org.springframework.security.ui.session.HttpSessionEventPubl isher</listener-class> </listener> </web-app> ApplicationContext-Security.xml <?xml version="1.0" encoding="UTF-8"?> <beans:beans xmlns="http://www.springframework.org/schema/security" xmlns:beans="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security-2.0.1.xsd"> <http auto-config='true'> <intercept-url pattern="/login*" access="IS_AUTHENTICATED_ANONYMOUSLY"/> <intercept-url pattern="/css/**" filters="none"/> <intercept-url pattern="/images/**" filters="none"/> <intercept-url pattern="/**" access="ROLE_TEST" /> <form-login login-page="/login" /> </http> <!-- Set the authentication users source start --> <!-- the simple config <authentication-provider> <jdbc-user-service data-source-ref="dataSource"/> </authentication-provider> --> <!-- Set the authentication users source end --> </beans:beans> applicationContext.xml <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"> <beans> <!-- Set the jdbc source start --> <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource" > <property name="driverClassName" value="com.microsoft.sqlserver.jdbc.SQLServerDriver"></property> <property name="url" value="jdbc:sqlserver://localhost:1433;databaseName=pubs"></property> <property name="username" value="sa"></property> <property name="password" value=""></property> </bean> <!-- Config authentication provider --> <bean id="daoAuthenticationProvider" class="org.springframework.security.providers.dao.DaoAuthenticationProvider" > <property name="userDetailsService" ref="userDetailsService" /> </bean> <bean id="userDetailsService" class="org.springframework.security.userdetails.jdbc.JdbcDaoImpl"> <property name="dataSource" ref="dataSource"/> </bean> <!-- Config the authentication manager --> <bean id="authenticationManager" class="org.springframework.security.providers.ProviderManager"> <property name="providers"> <list> <ref local="daoAuthenticationProvider" /> </list> </property> </bean> </beans> Above are the relative files, and when I load login page,it give me an error: An unexpected application exception has occurred. java.lang.ClassNotFoundException: caught an exception while obtaining a class file for com.callcenter.web.pages.Login and I try to get rid of the code [EMAIL PROTECTED] private RequestGlobals requestGlobals;” and the relative code in the onSelectedFromLoginButton method of login.java then the login page can display in IE. Please help me to find the reasons,thanks everybody.