]>
git.argeo.org Git - lgpl/argeo-commons.git/blob - org.argeo.util/src/org/argeo/osgi/useradmin/AuthenticatingUser.java
01db8be9895b9f3548728f2b6d5c580f684424e4
1 package org
.argeo
.osgi
.useradmin
;
3 import java
.util
.Dictionary
;
4 import java
.util
.Hashtable
;
6 import javax
.naming
.ldap
.LdapName
;
8 import org
.osgi
.service
.useradmin
.User
;
11 * A special user type used during authentication in order to provide the
12 * credentials required for scoping the user admin.
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";
20 private final String name
;
21 private final Dictionary
<String
, Object
> credentials
;
23 public AuthenticatingUser(LdapName name
) {
25 throw new NullPointerException("Provided name cannot be null.");
26 this.name
= name
.toString();
27 this.credentials
= new Hashtable
<>();
30 public AuthenticatingUser(String name
, Dictionary
<String
, Object
> credentials
) {
32 this.credentials
= credentials
;
35 public AuthenticatingUser(String name
, char[] password
) {
37 throw new NullPointerException("Provided name cannot be null.");
39 credentials
= new Hashtable
<>();
40 credentials
.put(SHARED_STATE_NAME
, name
);
41 byte[] pwd
= DigestUtils
.charsToBytes(password
);
42 credentials
.put(SHARED_STATE_PWD
, pwd
);
46 public String
getName() {
51 public int getType() {
55 @SuppressWarnings({ "rawtypes", "unchecked" })
57 public Dictionary
getProperties() {
58 throw new UnsupportedOperationException();
61 @SuppressWarnings({ "rawtypes", "unchecked" })
63 public Dictionary
getCredentials() {
68 public boolean hasCredential(String key
, Object value
) {
69 throw new UnsupportedOperationException();
73 public int hashCode() {
74 return name
.hashCode();
78 public String
toString() {
79 return "Authenticating user " + name
;