Add configurable support for admin profile.

This commit is contained in:
Paulo Gustavo Veiga
2012-02-21 16:36:19 -03:00
parent 7b6cae0fd2
commit 6ff556b317
10 changed files with 102 additions and 26 deletions

View File

@@ -1,10 +1,8 @@
package com.wisemapping.security;
import com.wisemapping.dao.UserManager;
import com.wisemapping.model.User;
import org.jetbrains.annotations.NotNull;
import org.springframework.security.authentication.AbstractAuthenticationToken;
import org.springframework.security.authentication.BadCredentialsException;
import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
import org.springframework.security.authentication.encoding.PasswordEncoder;
@@ -13,8 +11,7 @@ import org.springframework.security.core.AuthenticationException;
public class AuthenticationProvider implements org.springframework.security.authentication.AuthenticationProvider {
private UserManager userManager;
private UserDetailsService userDetailsService;
private PasswordEncoder encoder;
@Override()
@@ -23,13 +20,12 @@ public class AuthenticationProvider implements org.springframework.security.auth
// All your user authentication needs
final String email = auth.getName();
final User user = userManager.getUserBy(email);
final UserDetails userDetails = getUserDetailsService().loadUserByUsername(email);
final User user = userDetails.getUser();
final String credentials = (String) auth.getCredentials();
if (user == null || credentials == null || !encoder.isPasswordValid(user.getPassword(), credentials, null)) {
throw new BadCredentialsException("Username/Password does not match for " + auth.getPrincipal());
}
final UserDetails userDetails = new UserDetails(user);
return new UsernamePasswordAuthenticationToken(userDetails, credentials, userDetails.getAuthorities());
}
@@ -42,8 +38,11 @@ public class AuthenticationProvider implements org.springframework.security.auth
this.encoder = encoder;
}
public void setUserManager(UserManager userManager) {
this.userManager = userManager;
public UserDetailsService getUserDetailsService() {
return userDetailsService;
}
public void setUserDetailsService(UserDetailsService userDetailsService) {
this.userDetailsService = userDetailsService;
}
}