-
Dec 23rd, 2009, 11:47 PM
#1
Spring Authentication
Hi ,
ApplicationContext.xml
----------------------
<security:http auto-config="true" access-denied-page="/AccessDenied">
<security:intercept-url pattern="/LoginPage" access="IS_AUTHENTICATED_ANONYMOUSLY"/>
<security:intercept-url pattern="/**" access="ROLE_ADMIN"/>
<security:concurrent-session-control max-sessions="1" exception-if-maximum-exceeded="true" />
<security:form-login login-page="/LoginPage" authentication-failure-url="/LoginPage"/>
</security:http>
<!-- Security Authentication Provider -->
<security:authentication-provider>
<security:user-service>
<security:user password="admin" name="admin"
authorities="ROLE_ADMIN" />
<security:user password="suresh" name="suresh"
authorities="ROLE_USER" />
<security:user password="venkat" name="venkat"
authorities="ROLE_USER" />
</security:user-service>
</security:authentication-provider>
<bean id="filterChainProxy" class="org.springframework.security.util.FilterCha inProxy">
<property name="filterInvocationDefinitionSource">
<value>
CONVERT_URL_TO_LOWERCASE_BEFORE_COMPARISON
PATTERN_TYPE_APACHE_ANT
/**=concurrentSessionFilter,httpSessionContextInteg rationFilter,logoutFilter
</value>
</property>
</bean>
<bean id="concurrentSessionFilter"
class="org.springframework.security.concurrent.Con currentSessionFilter">
<property name="sessionRegistry" ref="sessionRegistry" />
<property name="expiredUrl" value="/MyLoginPage" />
</bean>
<bean id="httpSessionContextIntegrationFilter"
class="org.springframework.security.context.HttpSe ssionContextIntegrationFilter">
<property name="allowSessionCreation" value="true"/>
<property name="forceEagerSessionCreation" value="true"/>
</bean>
<bean id="logoutFilter"
class="org.springframework.security.ui.logout.Logo utFilter">
<constructor-arg value="/" />
<constructor-arg>
<list>
<bean
class="org.springframework.security.ui.logout.Secu rityContextLogoutHandler"/>
</list>
</constructor-arg>
</bean>
<bean id="sessionRegistry"
class="org.springframework.security.concurrent.Ses sionRegistryImpl" />
Web.xml
--------
<filter>
<filter-name>springSecurityFilterChain</filter-name>
<filter-class>org.springframework.web.filter.DelegatingFil terProxy</filter-class>
</filter>
<filter-mapping>
<filter-name>springSecurityFilterChain</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListe ner
</listener-class>
</listener>
<listener><listener-class>
org.springframework.security.ui.session.HttpSessio nEventPublisher
</listener-class>
</listener>
Login.Java
----------
public class LoginPage extends WebPage {
EofficeUser eofficeUser;
public LoginPage() {
//super(LoginPage.class);
eofficeUser= new EofficeUser();
add(new LoginPageForm("loginForm"));
add(new FeedbackPanel("errorMessages") {
private static final long serialVersionUID = 1L;
public boolean isVisible() {
return anyMessage(FeedbackMessage.ERROR);
}
});
}
public class LoginPageForm extends Form<LoginPageForm> {
private static final long serialVersionUID = 1L;
public LoginPageForm(String id) {
super(id);
add(new RequiredTextField<String>("loginId", new PropertyModel<String>(eofficeUser, "loginId")));
add(new PasswordTextField("password", new PropertyModel<String>(eofficeUser, "password")));
}
@Override
public final void onSubmit() {
AuthenticatedWebSession session = AuthenticatedWebSession.get();
if(session.authenticate(eofficeUser.getLoginId(), eofficeUser.getPassword())){
System.out.println("Authenticated Successfully"+session.getRoles());}
if(session.signIn(eofficeUser.getLoginId(), eofficeUser.getPassword())) {
setDefaultResponsePageIfNecessary();
} else {
setResponsePage(LoginPage.class);
}
}
private void setDefaultResponsePageIfNecessary() {
if(!continueToOriginalDestination()) {
setResponsePage(((MyAuthenticatedWebApplication) getApplication()).getSignInPageClass());
}
}
}
}
AuthenticatedWebSession.java
-----------------------------
@SpringBean
private transient AuthenticationManager authenticationManager;
@Override
public boolean authenticate(String username, String password) {
System.out.println(username+password);
boolean authenticated = false;
try {
Authentication authentication = authenticationManager.authenticate(new UsernamePasswordAuthenticationToken(username, password));
SecurityContextHolder.getContext().setAuthenticati on(authentication);
authenticated = authentication.isAuthenticated();
System.out.println("Authenticated Details"+authentication.getDetails());
} catch (AuthenticationException e) {
authenticated = false;
}
return authenticated;
}
I am getting Null Pointer Exception when i call session.authenticate(usrerid,password)(userid and password or not null)
pleas let me know Whether i am missing something before authenticating the user and password or i have done some thing wrong with spring security configuration.
Please help me to sort out this problem.
Thanks in advance.
Regards,
Suresh
Posting Permissions
- You may not post new threads
- You may not post replies
- You may not post attachments
- You may not edit your posts
-
Forum Rules