001 package org.jboss.dna.jcr;
002
003 import javax.jcr.Credentials;
004 import org.jboss.dna.common.util.CheckArg;
005 import org.jboss.dna.graph.SecurityContext;
006
007 /**
008 * {@link Credentials} implementation that wraps a {@link SecurityContext DNA security context}.
009 * <p>
010 * This class provides a means of passing security information about an authenticated user into {@link JcrSession the DNA JCR
011 * session implementation} without using JAAS. This class effectively bypasses DNA's internal authentication mechanisms, so it is
012 * very important that this context be provided for <i>authenticated users only</i>.
013 * </p>
014 */
015 public final class SecurityContextCredentials implements Credentials {
016 private static final long serialVersionUID = 1L;
017 private final SecurityContext securityContext;
018
019 /**
020 * Initializes the class with an existing {@link SecurityContext security context}.
021 *
022 * @param securityContext the security context; may not be null
023 */
024 public SecurityContextCredentials( SecurityContext securityContext ) {
025 CheckArg.isNotNull(securityContext, "securityContext");
026
027 this.securityContext = securityContext;
028 }
029
030 /**
031 * Returns the {@link SecurityContext security context} for this instance.
032 *
033 * @return the {@link SecurityContext security context} for this instance; never null
034 */
035 public final SecurityContext getSecurityContext() {
036 return this.securityContext;
037 }
038 }