Class AbstractJcrBackedUserRoleDao

java.lang.Object
org.pentaho.platform.security.userroledao.jackrabbit.AbstractJcrBackedUserRoleDao
All Implemented Interfaces:
org.pentaho.platform.api.engine.security.userroledao.IUserRoleDao
Direct Known Subclasses:
JcrUserRoleDao

public abstract class AbstractJcrBackedUserRoleDao extends Object implements org.pentaho.platform.api.engine.security.userroledao.IUserRoleDao
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    protected org.pentaho.platform.api.mt.ITenantedPrincipleNameResolver
     
    protected org.pentaho.platform.api.mt.ITenantedPrincipleNameResolver
     
  • Constructor Summary

    Constructors
    Constructor
    Description
    AbstractJcrBackedUserRoleDao(org.pentaho.platform.api.mt.ITenantedPrincipleNameResolver userNameUtils, org.pentaho.platform.api.mt.ITenantedPrincipleNameResolver roleNameUtils, String authenticatedRoleName, String tenantAdminRoleName, String repositoryAdminUsername, IRepositoryFileAclDao repositoryFileAclDao, IRepositoryFileDao repositoryFileDao, IPathConversionHelper pathConversionHelper, ILockHelper lockHelper, org.pentaho.platform.api.repository2.unified.IRepositoryDefaultAclHandler defaultAclHandler, List<String> systemRoles, List<String> extraRoles, org.springframework.security.core.userdetails.UserCache userDetailsCache)
     
  • Method Summary

    Modifier and Type
    Method
    Description
    protected boolean
    canDeleteUser(javax.jcr.Session session, org.pentaho.platform.api.engine.security.userroledao.IPentahoUser user)
    Checks to see if the removal of the received roles and users would cause the system to have no login associated with the Admin role.
    org.pentaho.platform.api.engine.security.userroledao.IPentahoRole
    createRole(javax.jcr.Session session, org.pentaho.platform.api.mt.ITenant theTenant, String roleName, String description, String[] memberUserNames)
     
    org.pentaho.platform.api.engine.security.userroledao.IPentahoUser
    createUser(javax.jcr.Session session, org.pentaho.platform.api.mt.ITenant theTenant, String userName, String password, String description, String[] roles)
     
    protected org.pentaho.platform.api.repository2.unified.RepositoryFile
    createUserHomeFolder(org.pentaho.platform.api.mt.ITenant theTenant, String username, javax.jcr.Session session)
     
    void
    deleteRole(javax.jcr.Session session, org.pentaho.platform.api.engine.security.userroledao.IPentahoRole role)
     
    void
    deleteUser(javax.jcr.Session session, org.pentaho.platform.api.engine.security.userroledao.IPentahoUser user)
     
    org.pentaho.platform.api.engine.security.userroledao.IPentahoRole
    getRole(javax.jcr.Session session, org.pentaho.platform.api.mt.ITenant tenant, String name)
     
    List<org.pentaho.platform.api.engine.security.userroledao.IPentahoUser>
    getRoleMembers(javax.jcr.Session session, org.pentaho.platform.api.mt.ITenant theTenant, String roleName)
     
    List<org.pentaho.platform.api.engine.security.userroledao.IPentahoRole>
    getRoles(javax.jcr.Session session)
     
    List<org.pentaho.platform.api.engine.security.userroledao.IPentahoRole>
    getRoles(javax.jcr.Session session, org.pentaho.platform.api.mt.ITenant tenant)
     
    List<org.pentaho.platform.api.engine.security.userroledao.IPentahoRole>
    getRoles(javax.jcr.Session session, org.pentaho.platform.api.mt.ITenant theTenant, boolean includeSubtenants)
     
    protected static org.apache.jackrabbit.core.SessionImpl
    getSessionImpl(javax.jcr.Session session)
    Our Sessions should be wrapped in a JDK Dynamic Proxy.
    org.pentaho.platform.api.mt.ITenantedPrincipleNameResolver
     
    org.pentaho.platform.api.mt.ITenantedPrincipleNameResolver
     
    org.pentaho.platform.api.engine.security.userroledao.IPentahoUser
    getUser(javax.jcr.Session session, org.pentaho.platform.api.mt.ITenant tenant, String name)
     
    protected org.apache.commons.collections.map.LRUMap
     
    List<org.pentaho.platform.api.engine.security.userroledao.IPentahoRole>
    getUserRoles(javax.jcr.Session session, org.pentaho.platform.api.mt.ITenant theTenant, String userName)
     
    List<org.pentaho.platform.api.engine.security.userroledao.IPentahoUser>
    getUsers(javax.jcr.Session session)
     
    List<org.pentaho.platform.api.engine.security.userroledao.IPentahoUser>
    getUsers(javax.jcr.Session session, org.pentaho.platform.api.mt.ITenant tenant)
     
    List<org.pentaho.platform.api.engine.security.userroledao.IPentahoUser>
    getUsers(javax.jcr.Session session, org.pentaho.platform.api.mt.ITenant theTenant, boolean includeSubtenants)
     
    protected void
     
    protected void
     
    protected boolean
    isMyself(String userName)
     
    boolean
     
    void
    setPassword(javax.jcr.Session session, org.pentaho.platform.api.mt.ITenant theTenant, String userName, String password)
     
    void
    setRoleDescription(javax.jcr.Session session, org.pentaho.platform.api.mt.ITenant theTenant, String roleName, String description)
     
    void
    setRoleMembers(javax.jcr.Session session, org.pentaho.platform.api.mt.ITenant theTenant, String roleName, String[] memberUserNames)
     
    protected void
    setTenantedRoleNameUtils(org.pentaho.platform.api.mt.ITenantedPrincipleNameResolver roleNameUtils)
     
    protected void
    setTenantedUserNameUtils(org.pentaho.platform.api.mt.ITenantedPrincipleNameResolver userNameUtils)
     
    void
    setUseJackrabbitUserCache(boolean useJackrabbitUserCache)
     
    void
    setUserDescription(javax.jcr.Session session, org.pentaho.platform.api.mt.ITenant theTenant, String userName, String description)
     
    protected void
    setUserDetailsCache(org.springframework.security.core.userdetails.UserCache userDetailsCache)
     
    void
    setUserRoles(javax.jcr.Session session, org.pentaho.platform.api.mt.ITenant theTenant, String userName, String[] roles)
     
    protected boolean
    tenantExists(String tenantName)
     

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

    Methods inherited from interface org.pentaho.platform.api.engine.security.userroledao.IUserRoleDao

    createRole, createUser, deleteRole, deleteUser, getRole, getRoleMembers, getRoles, getRoles, getRoles, getUser, getUserRoles, getUsers, getUsers, getUsers, setPassword, setRoleDescription, setRoleMembers, setUserDescription, setUserRoles
  • Field Details

    • tenantedUserNameUtils

      protected org.pentaho.platform.api.mt.ITenantedPrincipleNameResolver tenantedUserNameUtils
    • tenantedRoleNameUtils

      protected org.pentaho.platform.api.mt.ITenantedPrincipleNameResolver tenantedRoleNameUtils
  • Constructor Details

    • AbstractJcrBackedUserRoleDao

      public AbstractJcrBackedUserRoleDao(org.pentaho.platform.api.mt.ITenantedPrincipleNameResolver userNameUtils, org.pentaho.platform.api.mt.ITenantedPrincipleNameResolver roleNameUtils, String authenticatedRoleName, String tenantAdminRoleName, String repositoryAdminUsername, IRepositoryFileAclDao repositoryFileAclDao, IRepositoryFileDao repositoryFileDao, IPathConversionHelper pathConversionHelper, ILockHelper lockHelper, org.pentaho.platform.api.repository2.unified.IRepositoryDefaultAclHandler defaultAclHandler, List<String> systemRoles, List<String> extraRoles, org.springframework.security.core.userdetails.UserCache userDetailsCache) throws javax.jcr.NamespaceException
      Throws:
      javax.jcr.NamespaceException
  • Method Details

    • setRoleMembers

      public void setRoleMembers(javax.jcr.Session session, org.pentaho.platform.api.mt.ITenant theTenant, String roleName, String[] memberUserNames) throws javax.jcr.RepositoryException, org.pentaho.platform.api.engine.security.userroledao.NotFoundException
      Throws:
      javax.jcr.RepositoryException
      org.pentaho.platform.api.engine.security.userroledao.NotFoundException
    • isMyself

      protected boolean isMyself(String userName)
    • setUserRoles

      public void setUserRoles(javax.jcr.Session session, org.pentaho.platform.api.mt.ITenant theTenant, String userName, String[] roles) throws javax.jcr.RepositoryException, org.pentaho.platform.api.engine.security.userroledao.NotFoundException
      Throws:
      javax.jcr.RepositoryException
      org.pentaho.platform.api.engine.security.userroledao.NotFoundException
    • createRole

      public org.pentaho.platform.api.engine.security.userroledao.IPentahoRole createRole(javax.jcr.Session session, org.pentaho.platform.api.mt.ITenant theTenant, String roleName, String description, String[] memberUserNames) throws org.apache.jackrabbit.api.security.user.AuthorizableExistsException, javax.jcr.RepositoryException
      Throws:
      org.apache.jackrabbit.api.security.user.AuthorizableExistsException
      javax.jcr.RepositoryException
    • createUser

      public org.pentaho.platform.api.engine.security.userroledao.IPentahoUser createUser(javax.jcr.Session session, org.pentaho.platform.api.mt.ITenant theTenant, String userName, String password, String description, String[] roles) throws org.apache.jackrabbit.api.security.user.AuthorizableExistsException, javax.jcr.RepositoryException
      Throws:
      org.apache.jackrabbit.api.security.user.AuthorizableExistsException
      javax.jcr.RepositoryException
    • deleteRole

      public void deleteRole(javax.jcr.Session session, org.pentaho.platform.api.engine.security.userroledao.IPentahoRole role) throws org.pentaho.platform.api.engine.security.userroledao.NotFoundException, javax.jcr.RepositoryException
      Throws:
      org.pentaho.platform.api.engine.security.userroledao.NotFoundException
      javax.jcr.RepositoryException
    • deleteUser

      public void deleteUser(javax.jcr.Session session, org.pentaho.platform.api.engine.security.userroledao.IPentahoUser user) throws org.pentaho.platform.api.engine.security.userroledao.NotFoundException, javax.jcr.RepositoryException
      Throws:
      org.pentaho.platform.api.engine.security.userroledao.NotFoundException
      javax.jcr.RepositoryException
    • getRoles

      public List<org.pentaho.platform.api.engine.security.userroledao.IPentahoRole> getRoles(javax.jcr.Session session) throws javax.jcr.RepositoryException
      Throws:
      javax.jcr.RepositoryException
    • getUsers

      public List<org.pentaho.platform.api.engine.security.userroledao.IPentahoUser> getUsers(javax.jcr.Session session) throws javax.jcr.RepositoryException
      Throws:
      javax.jcr.RepositoryException
    • setRoleDescription

      public void setRoleDescription(javax.jcr.Session session, org.pentaho.platform.api.mt.ITenant theTenant, String roleName, String description) throws org.pentaho.platform.api.engine.security.userroledao.NotFoundException, javax.jcr.RepositoryException
      Throws:
      org.pentaho.platform.api.engine.security.userroledao.NotFoundException
      javax.jcr.RepositoryException
    • setUserDescription

      public void setUserDescription(javax.jcr.Session session, org.pentaho.platform.api.mt.ITenant theTenant, String userName, String description) throws org.pentaho.platform.api.engine.security.userroledao.NotFoundException, javax.jcr.RepositoryException
      Throws:
      org.pentaho.platform.api.engine.security.userroledao.NotFoundException
      javax.jcr.RepositoryException
    • setPassword

      public void setPassword(javax.jcr.Session session, org.pentaho.platform.api.mt.ITenant theTenant, String userName, String password) throws org.pentaho.platform.api.engine.security.userroledao.NotFoundException, javax.jcr.RepositoryException
      Throws:
      org.pentaho.platform.api.engine.security.userroledao.NotFoundException
      javax.jcr.RepositoryException
    • setUserDetailsCache

      protected void setUserDetailsCache(org.springframework.security.core.userdetails.UserCache userDetailsCache)
    • setTenantedUserNameUtils

      protected void setTenantedUserNameUtils(org.pentaho.platform.api.mt.ITenantedPrincipleNameResolver userNameUtils)
    • getTenantedUserNameUtils

      public org.pentaho.platform.api.mt.ITenantedPrincipleNameResolver getTenantedUserNameUtils()
    • setTenantedRoleNameUtils

      protected void setTenantedRoleNameUtils(org.pentaho.platform.api.mt.ITenantedPrincipleNameResolver roleNameUtils)
    • getTenantedRoleNameUtils

      public org.pentaho.platform.api.mt.ITenantedPrincipleNameResolver getTenantedRoleNameUtils()
    • getRoles

      public List<org.pentaho.platform.api.engine.security.userroledao.IPentahoRole> getRoles(javax.jcr.Session session, org.pentaho.platform.api.mt.ITenant tenant) throws javax.jcr.RepositoryException, javax.jcr.NamespaceException
      Throws:
      javax.jcr.RepositoryException
      javax.jcr.NamespaceException
    • getRoles

      public List<org.pentaho.platform.api.engine.security.userroledao.IPentahoRole> getRoles(javax.jcr.Session session, org.pentaho.platform.api.mt.ITenant theTenant, boolean includeSubtenants) throws javax.jcr.RepositoryException
      Throws:
      javax.jcr.RepositoryException
    • getSessionImpl

      protected static org.apache.jackrabbit.core.SessionImpl getSessionImpl(javax.jcr.Session session)
      Our Sessions should be wrapped in a JDK Dynamic Proxy. Unfortunately some Jackrabbit code is written against the SessionImpl concrete class. This utility unwraps the proxy.
      Parameters:
      session -
      Returns:
    • getUsers

      public List<org.pentaho.platform.api.engine.security.userroledao.IPentahoUser> getUsers(javax.jcr.Session session, org.pentaho.platform.api.mt.ITenant tenant) throws javax.jcr.RepositoryException
      Throws:
      javax.jcr.RepositoryException
    • getUsers

      public List<org.pentaho.platform.api.engine.security.userroledao.IPentahoUser> getUsers(javax.jcr.Session session, org.pentaho.platform.api.mt.ITenant theTenant, boolean includeSubtenants) throws javax.jcr.RepositoryException
      Throws:
      javax.jcr.RepositoryException
    • getRole

      public org.pentaho.platform.api.engine.security.userroledao.IPentahoRole getRole(javax.jcr.Session session, org.pentaho.platform.api.mt.ITenant tenant, String name) throws javax.jcr.RepositoryException
      Throws:
      javax.jcr.RepositoryException
    • getUser

      public org.pentaho.platform.api.engine.security.userroledao.IPentahoUser getUser(javax.jcr.Session session, org.pentaho.platform.api.mt.ITenant tenant, String name) throws javax.jcr.RepositoryException
      Throws:
      javax.jcr.RepositoryException
    • tenantExists

      protected boolean tenantExists(String tenantName)
    • getRoleMembers

      public List<org.pentaho.platform.api.engine.security.userroledao.IPentahoUser> getRoleMembers(javax.jcr.Session session, org.pentaho.platform.api.mt.ITenant theTenant, String roleName) throws javax.jcr.RepositoryException
      Throws:
      javax.jcr.RepositoryException
    • getUserRoles

      public List<org.pentaho.platform.api.engine.security.userroledao.IPentahoRole> getUserRoles(javax.jcr.Session session, org.pentaho.platform.api.mt.ITenant theTenant, String userName) throws javax.jcr.RepositoryException
      Throws:
      javax.jcr.RepositoryException
    • createUserHomeFolder

      protected org.pentaho.platform.api.repository2.unified.RepositoryFile createUserHomeFolder(org.pentaho.platform.api.mt.ITenant theTenant, String username, javax.jcr.Session session) throws javax.jcr.RepositoryException
      Throws:
      javax.jcr.RepositoryException
    • canDeleteUser

      protected boolean canDeleteUser(javax.jcr.Session session, org.pentaho.platform.api.engine.security.userroledao.IPentahoUser user) throws javax.jcr.RepositoryException
      Checks to see if the removal of the received roles and users would cause the system to have no login associated with the Admin role. This check is to be made before any changes take place
      Returns:
      Error message if invalid or null if ok
      Throws:
      javax.jcr.RepositoryException
    • isUseJackrabbitUserCache

      public boolean isUseJackrabbitUserCache()
    • setUseJackrabbitUserCache

      public void setUseJackrabbitUserCache(boolean useJackrabbitUserCache)
    • initUserCache

      protected void initUserCache()
    • getUserCache

      protected org.apache.commons.collections.map.LRUMap getUserCache()
    • initUserDetailsCache

      protected void initUserDetailsCache()