import java.net.InetAddress;
import java.net.UnknownHostException;
import java.security.Principal;
+import java.util.Locale;
import java.util.Map;
import java.util.Set;
import javax.security.auth.login.LoginException;
import javax.security.auth.spi.LoginModule;
import javax.security.auth.x500.X500Principal;
+import javax.servlet.http.HttpServletRequest;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.argeo.cms.internal.auth.ImpliedByPrincipal;
import org.argeo.naming.LdapAttrs;
import org.argeo.osgi.useradmin.IpaUtils;
+import org.osgi.service.useradmin.Authorization;
+/** Login module for when the system is owned by a single user. */
public class SingleUserLoginModule implements LoginModule {
private final static Log log = LogFactory.getLog(SingleUserLoginModule.class);
principals.add(principal);
principals.add(new ImpliedByPrincipal(NodeConstants.ROLE_ADMIN, principal));
principals.add(new DataAdminPrincipal());
+
+ HttpServletRequest request = (HttpServletRequest) sharedState.get(CmsAuthUtils.SHARED_STATE_HTTP_REQUEST);
+ Locale locale = Locale.getDefault();
+ if (request != null)
+ locale = request.getLocale();
+ if (locale == null)
+ locale = Locale.getDefault();
+ Authorization authorization = new SingleUserAuthorization();
+ CmsAuthUtils.addAuthorization(subject, authorization);
+ CmsAuthUtils.registerSessionAuthorization(request, subject, authorization, locale);
+
return true;
}
@Override
public boolean logout() throws LoginException {
- // TODO Auto-generated method stub
+ CmsAuthUtils.cleanUp(subject);
return true;
}