-/*
- * Copyright (C) 2007-2012 Argeo GmbH
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
package org.argeo.cms.auth;
import java.security.AccessController;
import javax.security.auth.x500.X500Principal;
import org.argeo.api.NodeConstants;
-import org.argeo.cms.CmsException;
import org.argeo.cms.internal.auth.CmsSessionImpl;
import org.argeo.cms.internal.auth.ImpliedByPrincipal;
import org.argeo.cms.internal.kernel.Activator;
* context.
*/
public final class CurrentUser {
- // private final static Log log = LogFactory.getLog(CurrentUser.class);
- // private final static BundleContext bc =
- // FrameworkUtil.getBundle(CurrentUser.class).getBundleContext();
/*
* CURRENT USER API
*/
public final static String getUsername(Subject subject) {
if (subject == null)
- throw new CmsException("Subject cannot be null");
+ throw new IllegalArgumentException("Subject cannot be null");
if (subject.getPrincipals(X500Principal.class).size() != 1)
return NodeConstants.ROLE_ANONYMOUS;
Principal principal = subject.getPrincipals(X500Principal.class).iterator().next();
* HELPERS
*/
private static Subject currentSubject() {
- // CmsAuthenticated cmsView = getNodeAuthenticated();
- // if (cmsView != null)
- // return cmsView.getSubject();
Subject subject = getAccessControllerSubject();
if (subject != null)
return subject;
- throw new CmsException("Cannot find related subject");
+ throw new IllegalStateException("Cannot find related subject");
}
private static Subject getAccessControllerSubject() {
return Subject.getSubject(AccessController.getContext());
}
- // public static boolean isAuthenticated() {
- // return getAccessControllerSubject() != null;
- // }
-
- /**
- * The node authenticated component (typically a CMS view) related to this
- * display, or null if none is available from this call. <b>Not API: Only for
- * low-level access.</b>
- */
- // private static CmsAuthenticated getNodeAuthenticated() {
- // return UiContext.getData(CmsAuthenticated.KEY);
- // }
-
private static Authorization getAuthorization(Subject subject) {
return subject.getPrivateCredentials(Authorization.class).iterator().next();
}
else
return false;
CmsSessionImpl cmsSession = CmsSessionImpl.getByUuid(nodeSessionId.toString());
- cmsSession.close();
+
+ // FIXME logout all views
+ // TODO check why it is sometimes null
+ if (cmsSession != null)
+ cmsSession.close();
// if (log.isDebugEnabled())
// log.debug("Logged out CMS session " + cmsSession.getUuid());
return true;