]> git.argeo.org Git - lgpl/argeo-commons.git/blob - org.argeo.enterprise/src/org/argeo/osgi/useradmin/AuthenticatingUser.java
Add JGit to client.
[lgpl/argeo-commons.git] / org.argeo.enterprise / src / org / argeo / osgi / useradmin / AuthenticatingUser.java
1 package org.argeo.osgi.useradmin;
2
3 import java.util.Dictionary;
4 import java.util.Hashtable;
5
6 import javax.naming.ldap.LdapName;
7
8 import org.osgi.service.useradmin.User;
9
10 /**
11 * A special user type used during authentication in order to provide the
12 * credentials required for scoping the user admin.
13 */
14 public class AuthenticatingUser implements User {
15 /** From com.sun.security.auth.module.*LoginModule */
16 public final static String SHARED_STATE_NAME = "javax.security.auth.login.name";
17 /** From com.sun.security.auth.module.*LoginModule */
18 public final static String SHARED_STATE_PWD = "javax.security.auth.login.password";
19
20 private final String name;
21 private final Dictionary<String, Object> credentials;
22
23 public AuthenticatingUser(LdapName name) {
24 this.name = name.toString();
25 this.credentials = new Hashtable<>();
26 }
27
28 public AuthenticatingUser(String name, Dictionary<String, Object> credentials) {
29 this.name = name;
30 this.credentials = credentials;
31 }
32
33 public AuthenticatingUser(String name, char[] password) {
34 this.name = name;
35 credentials = new Hashtable<>();
36 credentials.put(SHARED_STATE_NAME, name);
37 byte[] pwd = DigestUtils.charsToBytes(password);
38 credentials.put(SHARED_STATE_PWD, pwd);
39 }
40
41 @Override
42 public String getName() {
43 return name;
44 }
45
46 @Override
47 public int getType() {
48 return User.USER;
49 }
50
51 @SuppressWarnings({ "rawtypes", "unchecked" })
52 @Override
53 public Dictionary getProperties() {
54 throw new UnsupportedOperationException();
55 }
56
57 @SuppressWarnings({ "rawtypes", "unchecked" })
58 @Override
59 public Dictionary getCredentials() {
60 return credentials;
61 }
62
63 @Override
64 public boolean hasCredential(String key, Object value) {
65 throw new UnsupportedOperationException();
66 }
67
68 }