final String username;
final char[] password;
Object certificateChain = null;
+ boolean preauth = false;
if (sharedState.containsKey(CmsAuthUtils.SHARED_STATE_NAME)
&& sharedState.containsKey(CmsAuthUtils.SHARED_STATE_PWD)) {
// NB: required by Basic http auth
username = certDn;
certificateChain = sharedState.get(CmsAuthUtils.SHARED_STATE_CERTIFICATE_CHAIN);
password = null;
+ } else if (sharedState.containsKey(CmsAuthUtils.SHARED_STATE_NAME)
+ && sharedState.containsKey(CmsAuthUtils.SHARED_STATE_REMOTE_ADDR)
+ && sharedState.containsKey(CmsAuthUtils.SHARED_STATE_REMOTE_PORT)) {// ident
+ username = (String) sharedState.get(CmsAuthUtils.SHARED_STATE_NAME);
+ password = null;
+ preauth = true;
} else if (singleUser) {
username = OsUserUtils.getOsUsername();
password = null;
// is provided
} else if (singleUser) {
// TODO verify IP address?
+ } else if (preauth) {
+ // ident
} else {
throw new CredentialNotFoundException("No credentials provided");
}
// Log and monitor new login
HttpServletRequest request = (HttpServletRequest) sharedState.get(CmsAuthUtils.SHARED_STATE_HTTP_REQUEST);
- CmsAuthUtils.addAuthorization(subject, authorization, locale, request);
+ CmsAuthUtils.addAuthorization(subject, authorization);
// Unlock keyring (underlying login to the JCR repository)
char[] password = (char[]) sharedState.get(CmsAuthUtils.SHARED_STATE_PWD);