I need to use Ldap for authentication and database for authorization with spring security. When I enter login/password on login page, nothing appends !
What am I doing wrong?
applicationcontext-spring.xmlAuthorities PopulatorCode:<security:http auto-config="false" access-denied-page="/accessDenied.jspx"> <security:intercept-url pattern="/secured/**" access="ROLE_ALLACCESS, ROLE_URLACCESS"/> <security:form-login login-page="/springSecurityLogin.jspx" default-target-url="/secured/welcome.jspx"/> <security:anonymous /> <security:http-basic /> <security:logout logout-success-url="/logoutSuccess.jspx" /> <security:concurrent-session-control max-sessions="1" /> </security:http> <bean id="contextSource" class="org.springframework.security.ldap.DefaultSpringSecurityContextSource"> <constructor-arg value="ldap://name:389"/> <property name="userDn" value="uid=login,ou=people,o=compagny"/> <property name="password" value="password"/> </bean> <bean id="ldapAuthProvider" class="org.springframework.security.providers.ldap.LdapAuthenticationProvider"> <constructor-arg ref="authenticator"/> <constructor-arg ref="populator"/> <security:custom-authentication-provider/> </bean> <bean id="authenticator" class="org.springframework.security.providers.ldap.authenticator.BindAuthenticator"> <constructor-arg ref="contextSource"/> <property name="userDnPatterns"> <list> <value>uid={0},ou=people,o=compagny</value> </list> </property> </bean> <bean id="populator" class="com.app.security.UserDetailsAuthoritiesPopulator"> <constructor-arg ref="userService" /> </bean>
JSF login beanCode:public class UserDetailsAuthoritiesPopulator implements LdapAuthoritiesPopulator { private IUserService userService; public UserDetailsAuthoritiesPopulator(IUserService userService) { this.userService = userService; } public GrantedAuthority[] getGrantedAuthorities( DirContextOperations userData, String username) { Set<GrantedAuthorityImpl> userPerms = new HashSet<GrantedAuthorityImpl>(); System.out.println("entering getGrantedAuthorities"); // get users permissions from service User user = userService.findUser(username); List<Role> permissions = user.getRoleList(); for (Role perm : permissions) { System.out.println("perm : " + permissions); userPerms.add(new GrantedAuthorityImpl(perm.getName())); } return userPerms.toArray(new GrantedAuthority[userPerms.size()]); } }
Code:public class LoginBean { private String userId; private String password; public LoginBean() { Exception ex = (Exception) FacesContext .getCurrentInstance() .getExternalContext() .getSessionMap() .get(AbstractProcessingFilter.SPRING_SECURITY_LAST_EXCEPTION_KEY); if (ex != null) FacesContext.getCurrentInstance().addMessage( null, new FacesMessage(FacesMessage.SEVERITY_ERROR, ex .getMessage(), ex.getMessage())); } public void login(ActionEvent e) throws java.io.IOException { FacesContext.getCurrentInstance().getExternalContext().redirect("/app/j_spring_security_check?j_username=" + userId + "&j_password=" + password); }




