Package org.appng.core.service
Class CoreService
- java.lang.Object
-
- org.appng.core.service.CoreService
-
@Transactional(rollbackFor=BusinessException.class) public class CoreService extends Object
A service implementing the core business logic for creation/retrieval/removal of business-objects.- Author:
- Matthias Müller, Matthias Herlitzius
-
-
Field Summary
Fields Modifier and Type Field Description protected ApplicationRepository
applicationRepository
protected PlatformEventListener
auditableListener
protected DatabaseConnectionRepository
databaseConnectionRepository
protected DatabaseService
databaseService
protected GroupRepository
groupRepository
protected LdapService
ldapService
protected PermissionRepository
permissionRepository
protected PropertyRepository
propertyRepository
protected RepoRepository
repoRepository
protected ResourceRepository
resourceRepository
protected RoleRepository
roleRepository
protected SiteApplicationRepository
siteApplicationRepository
protected SiteRepository
siteRepository
protected SubjectRepository
subjectRepository
protected TemplateService
templateService
-
Constructor Summary
Constructors Constructor Description CoreService()
-
Method Summary
-
-
-
Field Detail
-
databaseConnectionRepository
@Autowired protected DatabaseConnectionRepository databaseConnectionRepository
-
siteApplicationRepository
@Autowired protected SiteApplicationRepository siteApplicationRepository
-
groupRepository
@Autowired protected GroupRepository groupRepository
-
siteRepository
@Autowired protected SiteRepository siteRepository
-
applicationRepository
@Autowired protected ApplicationRepository applicationRepository
-
subjectRepository
@Autowired protected SubjectRepository subjectRepository
-
propertyRepository
@Autowired protected PropertyRepository propertyRepository
-
permissionRepository
@Autowired protected PermissionRepository permissionRepository
-
roleRepository
@Autowired protected RoleRepository roleRepository
-
repoRepository
@Autowired protected RepoRepository repoRepository
-
resourceRepository
@Autowired protected ResourceRepository resourceRepository
-
databaseService
@Autowired protected DatabaseService databaseService
-
ldapService
@Autowired protected LdapService ldapService
-
templateService
@Autowired protected TemplateService templateService
-
auditableListener
@Autowired protected PlatformEventListener auditableListener
-
-
Method Detail
-
createSubject
public Subject createSubject(SubjectImpl subject)
-
getPlatformProperties
public PropertyHolder getPlatformProperties()
-
getPlatform
protected PropertyHolder getPlatform(boolean finalize, boolean detached)
-
initPlatformConfig
public PlatformProperties initPlatformConfig(Properties defaultOverrides, String rootPath, Boolean devMode, boolean persist, boolean tempOverrides)
-
initNodeConfig
public Properties initNodeConfig(Environment env)
-
getNodeProperties
public org.springframework.data.domain.Page<PropertyImpl> getNodeProperties(String nodeId, org.springframework.data.domain.Pageable pageable)
-
getPropertiesList
protected Iterable<PropertyImpl> getPropertiesList(Integer siteId, Integer applicationId)
-
getProperties
protected org.springframework.data.domain.Page<PropertyImpl> getProperties(Integer siteId, Integer applicationId, org.springframework.data.domain.Pageable pageable)
-
getPropertiesList
public Iterable<PropertyImpl> getPropertiesList(String siteName, String applicationName)
-
getPropertiesList
public Iterable<PropertyImpl> getPropertiesList(Site site, Application application)
-
getProperties
public org.springframework.data.domain.Page<PropertyImpl> getProperties(Site site, Application application, org.springframework.data.domain.Pageable pageable)
-
createProperty
public PropertyImpl createProperty(Integer siteId, Integer applicationId, PropertyImpl property)
-
createProperty
public PropertyImpl createProperty(Site site, Application application, PropertyImpl property)
-
createNodeProperty
public PropertyImpl createNodeProperty(String nodeId, PropertyImpl property)
-
checkPropertyExists
protected boolean checkPropertyExists(Integer siteId, Integer applicationId, PropertyImpl property)
-
saveSite
public void saveSite(SiteImpl site)
-
saveProperty
public PropertyImpl saveProperty(PropertyImpl property)
-
getSubjectsByType
public List<SubjectImpl> getSubjectsByType(UserType type)
-
isValidPassword
public boolean isValidPassword(AuthSubject authSubject, String password)
-
getDefaultPasswordHandler
public PasswordHandler getDefaultPasswordHandler(AuthSubject authSubject)
Returns the default password manager which should be used to handle all passwords.- Parameters:
authSubject
- TheAuthSubject
which is used for initializing thePasswordHandler
.- Returns:
- the default
PasswordHandler
for theAuthSubject
-
saveProperties
protected void saveProperties(Properties properties)
-
login
public boolean login(Environment env, Principal principal)
-
login
public boolean login(Environment env, String digest, int digestMaxValidity)
-
login
public boolean login(Site site, Environment env, String username, String password)
-
loginGroup
public boolean loginGroup(Environment env, AuthSubject authSubject, String password, Integer groupId)
-
loginUserWithGroups
public boolean loginUserWithGroups(Environment env, String userName, String email, String realName, List<String> appNGGroups)
-
loginByUserName
public boolean loginByUserName(Environment env, String username)
-
logoutSubject
public void logoutSubject(Environment env)
-
getProperty
public PropertyImpl getProperty(String propertyId)
-
createSite
protected void createSite(SiteImpl site, Environment env)
-
createSite
public void createSite(SiteImpl site)
-
initSiteProperties
protected void initSiteProperties(SiteImpl site)
-
initSiteProperties
protected void initSiteProperties(SiteImpl site, boolean doSave)
-
assignApplicationToSite
public MigrationService.MigrationStatus assignApplicationToSite(SiteImpl site, Application application, boolean createProperties)
-
createDatabaseConnection
protected MigrationService.MigrationStatus createDatabaseConnection(SiteApplication siteApplication)
-
getPermission
public PermissionImpl getPermission(String application, String name)
-
savePermission
public PermissionImpl savePermission(PermissionImpl p)
-
createRepository
public RepositoryImpl createRepository(RepositoryImpl repository)
-
installPackage
public PackageInfo installPackage(Integer repositoryId, String name, String version, String timestamp, boolean isPrivileged, boolean isHidden, boolean isFileBased, FieldProcessor fp, boolean updateHiddenAndPrivileged) throws BusinessException
- Throws:
BusinessException
-
installPackage
public PackageInfo installPackage(Integer repositoryId, String name, String version, String timestamp, boolean isPrivileged, boolean isHidden, boolean isFileBased) throws BusinessException
- Throws:
BusinessException
-
provideTemplate
public Template provideTemplate(Integer repositoryId, String templateName, String templateVersion, String templateTimestamp) throws BusinessException
- Throws:
BusinessException
-
deleteTemplate
public Integer deleteTemplate(String name)
Deletes aTemplate
- Parameters:
name
- the name of the template to delete- Returns:
- 0 - if everything went OK
- -1 - if no such template exists
- -2 - if the template is still in use
-
deletePackageVersion
protected void deletePackageVersion(Integer repositoryId, String packageName, String packageVersion, String packageTimestamp) throws BusinessException
- Throws:
BusinessException
-
reloadRepository
protected void reloadRepository(Integer repositoryId) throws BusinessException
- Throws:
BusinessException
-
writeApplicationResources
protected void writeApplicationResources(Application application, boolean fileBased, File outputDir, Collection<Resource> resources) throws BusinessException
- Throws:
BusinessException
-
getApplicationRootFolder
protected File getApplicationRootFolder(Environment environment)
-
getApplicationFolder
public File getApplicationFolder(Environment env, String applicationName)
-
getPlatformConfig
protected Properties getPlatformConfig(Environment environment)
-
deleteResource
protected String deleteResource(Environment env, Integer applicationId, Integer resourceId) throws BusinessException
- Throws:
BusinessException
-
synchronizeApplicationResources
protected void synchronizeApplicationResources(Environment env, Application application, boolean isFileBased) throws BusinessException
- Throws:
BusinessException
-
resetPassword
public byte[] resetPassword(AuthSubject authSubject, PasswordPolicy passwordPolicy, String email, String hash)
-
forgotPassword
public String forgotPassword(AuthSubject authSubject) throws BusinessException
- Throws:
BusinessException
-
updateSubject
public SubjectImpl updateSubject(SubjectImpl subject)
-
findApplicationByName
public AccessibleApplication findApplicationByName(String name)
-
updateApplication
public void updateApplication(ApplicationImpl application, boolean isFileBased) throws BusinessException
- Throws:
BusinessException
-
deleteSite
public void deleteSite(String name, FieldProcessor fp) throws BusinessException
- Throws:
BusinessException
-
setSiteActive
public void setSiteActive(String name, boolean active) throws BusinessException
- Throws:
BusinessException
-
deleteSite
public void deleteSite(Environment env, SiteImpl site) throws BusinessException
- Throws:
BusinessException
-
cleanupSite
public void cleanupSite(Environment env, SiteImpl site, boolean sendDeletedEvent)
-
deleteProperty
public void deleteProperty(PropertyImpl prop)
-
unlinkApplicationFromSite
protected MigrationService.MigrationStatus unlinkApplicationFromSite(SiteApplication siteApplication)
-
unlinkApplicationFromSite
@Transactional(propagation=REQUIRES_NEW) public MigrationService.MigrationStatus unlinkApplicationFromSite(Integer siteId, Integer applicationId)
-
saveRole
public void saveRole(RoleImpl role)
-
deleteRole
public void deleteRole(Role role) throws BusinessException
- Throws:
BusinessException
-
deleteRole
protected void deleteRole(Integer roleId, String roleDeleteError, String roleErrorInvalid) throws BusinessException
Deletes a ApplicationRole- Throws:
BusinessException
-
deleteApplication
public void deleteApplication(String applicationName, FieldProcessor fp) throws BusinessException
Deletes a Application via the Command Line Interface.- Throws:
BusinessException
-
deleteApplication
protected void deleteApplication(Environment environment, Request request, Integer applicationId, FieldProcessor fp, String applicationDeleteErrorWithCause, String applicationRemovedFromSite, String applicationErrorInvalid, String applicationroleDeleteError, String applicationroleErrorInvalid) throws BusinessException
- Throws:
BusinessException
-
deletePermission
public void deletePermission(Permission permission)
-
assignRolesToGroup
protected void assignRolesToGroup(Group group, Site site, List<Integer> applicationRoleIds)
-
addApplicationRolesToGroup
public void addApplicationRolesToGroup(String groupName, String applicationName, List<String> applicationRoleNames, boolean clear)
-
assignGroupsToSubject
protected void assignGroupsToSubject(Integer subjectId, List<Integer> groupIds, boolean clear)
-
addGroupsToSubject
public void addGroupsToSubject(String userName, List<String> groupNames, boolean clear) throws BusinessException
- Throws:
BusinessException
-
getDatabaseConnectionsForSite
public List<DatabaseConnection> getDatabaseConnectionsForSite(Integer siteId)
-
getDatabaseConnections
public org.springframework.data.domain.Page<DatabaseConnection> getDatabaseConnections(Integer siteId, FieldProcessor fp)
-
getDatabaseConnection
public DatabaseConnection getDatabaseConnection(Integer dcId, boolean clearPassword)
-
createDatabaseConnection
protected DatabaseConnection createDatabaseConnection(DatabaseConnection databaseConnection, boolean managed)
-
getResources
protected Resources getResources(Application application, File applicationCacheFolder, File applicationRootFolder) throws InvalidConfigurationException
- Throws:
InvalidConfigurationException
-
initApplicationProperties
protected void initApplicationProperties(Site site, AccessibleApplication application)
-
initApplicationProperties
protected void initApplicationProperties(AccessibleApplication application)
-
updatePassword
public PasswordPolicy.ValidationResult updatePassword(PasswordPolicy policy, char[] currentPassword, char[] password, SubjectImpl currentSubject)
-
resetConnection
public void resetConnection(FieldProcessor fp, Integer conId)
-
deleteGroup
public void deleteGroup(GroupImpl group)
-
deleteApplicationRepository
public void deleteApplicationRepository(Repository repository)
-
deleteSubject
public void deleteSubject(Subject subject)
-
shutdownSite
public SiteImpl shutdownSite(Environment env, String siteName)
-
shutdownSite
public SiteImpl shutdownSite(Environment env, String siteName, boolean removeFromSiteMap)
-
unsetReloadRequired
public void unsetReloadRequired(SiteApplication siteApplication)
-
getApplicationSubjects
public Collection<ApplicationSubject> getApplicationSubjects(Integer applicationId, Site site)
-
getSubjectByName
public SubjectImpl getSubjectByName(String name, boolean initialize)
-
getApplicationRepositoryByName
public Repository getApplicationRepositoryByName(String repositoryName)
-
saveRepository
public void saveRepository(RepositoryImpl repo)
-
getApplications
public List<ApplicationImpl> getApplications()
-
getApplicationRolesForApplication
public List<RoleImpl> getApplicationRolesForApplication(Integer applicationId)
-
getApplicationRepositories
public List<RepositoryImpl> getApplicationRepositories()
-
getSubjects
public List<SubjectImpl> getSubjects()
-
updateGroup
public void updateGroup(GroupImpl group)
-
addPermissions
public int addPermissions(String applicationName, String roleName, List<String> permissionNames) throws BusinessException
- Throws:
BusinessException
-
removePermissions
public int removePermissions(String applicationName, String roleName, List<String> permissionNames) throws BusinessException
- Throws:
BusinessException
-
getApplicationRoleForApplication
public Role getApplicationRoleForApplication(Integer applicationId, String roleName)
-
getApplicationRoleForApplication
public RoleImpl getApplicationRoleForApplication(String applicationName, String roleName)
-
getPermissionsForApplication
public List<? extends Permission> getPermissionsForApplication(Integer applicationId)
-
getCacheEntries
public List<CachedResponse> getCacheEntries(Integer siteId)
-
expireCacheElement
public void expireCacheElement(Integer siteId, String cacheElement) throws BusinessException
- Throws:
BusinessException
-
clearCacheStatistics
public void clearCacheStatistics(Integer siteId)
-
clearCache
public void clearCache(Integer siteId)
-
getApplicationForConnection
public Application getApplicationForConnection(DatabaseConnection dbc)
-
getDatabaseConnection
public DatabaseConnection getDatabaseConnection(SiteImpl site, ApplicationImpl application)
-
getSiteApplication
public SiteApplication getSiteApplication(String site, String application)
-
getSiteApplicationWithGrantedSites
public SiteApplication getSiteApplicationWithGrantedSites(String site, String application)
-
grantApplicationForSites
public SiteApplication grantApplicationForSites(String site, String application, List<String> siteNames)
-
createEvent
public void createEvent(PlatformEvent.Type type, String message, javax.servlet.http.HttpServletRequest request)
-
createEvent
public void createEvent(PlatformEvent.Type type, String message, Object... args)
-
setSiteReloadCount
public void setSiteReloadCount(SiteImpl site)
-
refreshTemplate
public void refreshTemplate(Site site, PlatformProperties platformConfig)
-
reloadTemplate
public void reloadTemplate(Site site, PlatformProperties platformConfig)
-
-