1 package com.atlassian.user.security.authentication;
2
3 import com.atlassian.user.EntityException;
4 import com.atlassian.user.User;
5 import com.atlassian.user.UserManager;
6 import com.atlassian.user.impl.DefaultUser;
7 import com.atlassian.user.repository.RepositoryIdentifier;
8 import com.atlassian.user.security.password.PasswordEncryptor;
9
10 public class DefaultAuthenticator implements Authenticator
11 {
12 private final UserManager userManager;
13 private final PasswordEncryptor encryptor;
14
15 public DefaultAuthenticator(UserManager userManager, PasswordEncryptor encryptor)
16 {
17 this.userManager = userManager;
18 this.encryptor = encryptor;
19 }
20
21 public boolean authenticate(String username, String password) throws EntityException
22 {
23 User user = userManager.getUser(username);
24 if (user == null) return false;
25 if (!(user instanceof DefaultUser)) return false;
26
27 DefaultUser defaultUser = (DefaultUser) user;
28 try
29 {
30 return defaultUser.getPassword() != null && defaultUser.getPassword().equals(encryptor.encrypt(password));
31 }
32 catch (Exception e)
33 {
34 throw new EntityAuthenticationException(e);
35 }
36 }
37
38 public RepositoryIdentifier getRepository()
39 {
40 return userManager.getIdentifier();
41 }
42 }