|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectorg.dspace.authenticate.X509Authentication
public class X509Authentication
Implicit authentication method that gets credentials from the X.509 client certificate supplied by the HTTPS client when connecting to this server. The email address in that certificate is taken as the authenticated user name with no further checking, so be sure your HTTP server (e.g. Tomcat) is configured correctly to accept only client certificates it can validate.
See the AuthenticationMethod interface for more details.
Configuration:
x509.keystore.path = path to Java keystore file keystore.password = password to access the keystore ca.cert = path to certificate file for CA whose client certs to accept. autoregister = "true" if E-Person is created automatically for unknown new users. groups = comma-delimited list of special groups to add user to if authenticated. emaildomain = email address domain (after the 'at' symbol) to match before allowing membership in special groups.Only one of the "
keystore.path" or "ca.cert"
options is required. If you supply a keystore, then all of the "trusted"
certificates in the keystore represent CAs whose client certificates will be
accepted. The ca.cert option only allows a single CA to be
named.
You can configure both a keystore and a CA cert, and both will be used.
The autoregister configuration parameter determines what the
canSelfRegister() method returns. It also allows an EPerson
record to be created automatically when the presented certificate is
acceptable but there is no corresponding EPerson.
| Field Summary |
|---|
| Fields inherited from interface org.dspace.authenticate.AuthenticationMethod |
|---|
BAD_ARGS, BAD_CREDENTIALS, CERT_REQUIRED, NO_SUCH_USER, SUCCESS |
| Constructor Summary | |
|---|---|
X509Authentication()
|
|
| Method Summary | |
|---|---|
boolean |
allowSetPassword(Context context,
javax.servlet.http.HttpServletRequest request,
String username)
We don't use EPerson password so there is no reason to change it. |
int |
authenticate(Context context,
String username,
String password,
String realm,
javax.servlet.http.HttpServletRequest request)
X509 certificate authentication. |
boolean |
canSelfRegister(Context context,
javax.servlet.http.HttpServletRequest request,
String username)
Predicate, can new user automatically create EPerson. |
int[] |
getSpecialGroups(Context context,
javax.servlet.http.HttpServletRequest request)
Return special groups configured in dspace.cfg for X509 certificate authentication. |
void |
initEPerson(Context context,
javax.servlet.http.HttpServletRequest request,
EPerson eperson)
Nothing extra to initialize. |
boolean |
isImplicit()
Returns true, this is an implicit method. |
String |
loginPageTitle(Context context)
Returns message key for title of the "login" page, to use in a menu showing the choice of multiple login methods. |
String |
loginPageURL(Context context,
javax.servlet.http.HttpServletRequest request,
javax.servlet.http.HttpServletResponse response)
Returns URL of password-login servlet. |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Constructor Detail |
|---|
public X509Authentication()
| Method Detail |
|---|
public boolean canSelfRegister(Context context,
javax.servlet.http.HttpServletRequest request,
String username)
throws SQLException
canSelfRegister in interface AuthenticationMethodcontext - DSpace contextrequest - HTTP request, in case it's needed. May be null.username - Username, if available. May be null.
SQLException
public void initEPerson(Context context,
javax.servlet.http.HttpServletRequest request,
EPerson eperson)
throws SQLException
initEPerson in interface AuthenticationMethodcontext - DSpace contextrequest - HTTP request, in case it's needed. May be null.eperson - newly created EPerson record - email + information from the
registration form will have been filled out.
SQLException
public boolean allowSetPassword(Context context,
javax.servlet.http.HttpServletRequest request,
String username)
throws SQLException
allowSetPassword in interface AuthenticationMethodcontext - DSpace contextrequest - HTTP request, in case it's needed. May be null.username - Username, if available. May be null.
SQLExceptionpublic boolean isImplicit()
isImplicit in interface AuthenticationMethod
public int[] getSpecialGroups(Context context,
javax.servlet.http.HttpServletRequest request)
throws SQLException
getSpecialGroups in interface AuthenticationMethodcontext - request - object potentially containing the cert
SQLException
public int authenticate(Context context,
String username,
String password,
String realm,
javax.servlet.http.HttpServletRequest request)
throws SQLException
ServletRequest object.
"authentication.x509.autoregister" configuration
parameter is checked (via canSelfRegister())
authenticate in interface AuthenticationMethodcontext - DSpace context, will be modified (ePerson set) upon success.username - Username (or email address) when method is explicit. Use null for
implicit method.password - Password for explicit auth, or null for implicit method.realm - Realm is an extra parameter used by some authentication methods, leave null if
not applicable.request - The HTTP request that started this operation, or null if not applicable.
SQLException
public String loginPageURL(Context context,
javax.servlet.http.HttpServletRequest request,
javax.servlet.http.HttpServletResponse response)
loginPageURL in interface AuthenticationMethodcontext - DSpace context, will be modified (EPerson set) upon success.request - The HTTP request that started this operation, or null if not
applicable.response - The HTTP response from the servlet method.
public String loginPageTitle(Context context)
loginPageTitle in interface AuthenticationMethodcontext - DSpace context, will be modified (EPerson set) upon success.
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||