Usage of Mongodb and Login Module using mongo
This commit is contained in:
parent
ad135e3d2d
commit
657a0f9a03
54 changed files with 1003 additions and 3963 deletions
|
|
@ -17,6 +17,8 @@ services:
|
|||
- gitdata:/home/niodir
|
||||
- lucenedata:/home/lucene
|
||||
hostname: kie-wb.pymma
|
||||
links:
|
||||
- businessProxyDB:mongodb
|
||||
networks:
|
||||
drools-network-dev:
|
||||
ipv4_address: 172.27.1.5
|
||||
|
|
@ -38,12 +40,8 @@ services:
|
|||
- 8200:8200
|
||||
links:
|
||||
- businessProxyDB:mongodb
|
||||
- elasticsearchhost:elasticdb
|
||||
- kie-wb
|
||||
depends_on:
|
||||
- businessProxyDB
|
||||
- elasticsearchhost
|
||||
- kie-wb
|
||||
restart: always
|
||||
|
||||
|
||||
|
|
@ -181,10 +179,8 @@ services:
|
|||
ipv4_address: 172.27.1.23
|
||||
links:
|
||||
- businessProxyDB:mongodb
|
||||
- elasticsearchhost:elasticdb
|
||||
depends_on:
|
||||
- businessProxyDB
|
||||
- elasticsearchhost
|
||||
restart: always
|
||||
|
||||
runtime-reverse-proxy:
|
||||
|
|
@ -202,30 +198,6 @@ services:
|
|||
- 9500:9500
|
||||
restart: always
|
||||
|
||||
|
||||
|
||||
elasticsearchhost:
|
||||
image: docker.elastic.co/elasticsearch/elasticsearch:6.2.2
|
||||
container_name: "elasticsearchhost"
|
||||
environment:
|
||||
- network.host=0.0.0.0
|
||||
- cluster.name=elasticsearch
|
||||
ulimits:
|
||||
memlock:
|
||||
soft: -1
|
||||
hard: -1
|
||||
volumes:
|
||||
- esdata2:/usr/share/elasticsearch/data
|
||||
hostname: es.pymma
|
||||
networks:
|
||||
drools-network-dev:
|
||||
ipv4_address: 172.27.1.7
|
||||
ports:
|
||||
- 9300:9300
|
||||
- 9200:9200
|
||||
restart: always
|
||||
|
||||
|
||||
businessProxyDB:
|
||||
image: mongo
|
||||
container_name: "businessProxyDB"
|
||||
|
|
@ -243,26 +215,9 @@ services:
|
|||
|
||||
|
||||
|
||||
dps:
|
||||
image: defreitas/dns-proxy-server:2.13.2
|
||||
volumes:
|
||||
- /var/run/docker.sock:/var/run/docker.sock
|
||||
- /etc/resolv.conf:/etc/resolv.conf
|
||||
environment:
|
||||
- MG_LOG_LEVEL=ERROR
|
||||
hostname: dns.pymma
|
||||
networks:
|
||||
drools-network-dev:
|
||||
ipv4_address: 172.27.1.233
|
||||
ports:
|
||||
- 5380:5380
|
||||
|
||||
|
||||
|
||||
volumes:
|
||||
mongodb:
|
||||
mongodb_config:
|
||||
gitdata:
|
||||
lucenedata:
|
||||
esdata2:
|
||||
kieserverdir:
|
||||
|
|
@ -147,7 +147,7 @@
|
|||
<dependency>
|
||||
<groupId>org.uberfire</groupId>
|
||||
<artifactId>uberfire-rest-client</artifactId>
|
||||
<version>2.9.0.Final</version>
|
||||
<version>${jbpm.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.springframework</groupId>
|
||||
|
|
|
|||
|
|
@ -1,30 +1,45 @@
|
|||
package org.chtijbug.drools.console;
|
||||
|
||||
|
||||
import org.chtijbug.drools.console.middle.DababaseContentInit;
|
||||
import org.chtijbug.drools.console.service.model.kie.KieConfigurationData;
|
||||
import org.chtijbug.drools.console.service.util.ApplicationContextProvider;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.boot.SpringApplication;
|
||||
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
||||
import org.springframework.boot.builder.SpringApplicationBuilder;
|
||||
import org.springframework.boot.context.event.ApplicationReadyEvent;
|
||||
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
|
||||
import org.springframework.context.annotation.*;
|
||||
|
||||
import org.springframework.context.event.EventListener;
|
||||
import org.springframework.data.mongodb.repository.config.EnableMongoRepositories;
|
||||
|
||||
@Configuration
|
||||
@SpringBootApplication
|
||||
@ComponentScan({"org.chtijbug.drools.proxy.persistence"})
|
||||
@EnableMongoRepositories("org.chtijbug.drools.proxy.persistence.repository")
|
||||
|
||||
@PropertySource("classpath:application.properties")
|
||||
@ImportResource("classpath:applicationContext.xml")
|
||||
public class DroolsSpringBootConsoleApplication extends SpringBootServletInitializer {
|
||||
|
||||
@Bean
|
||||
@Value("${kie-wb.baseurl}")
|
||||
private String kiewbUrl;
|
||||
|
||||
@Autowired
|
||||
private DababaseContentInit dababaseContentInit;
|
||||
|
||||
@Bean(name = "applicationContext")
|
||||
public ApplicationContextProvider getAppplicationContext() {
|
||||
ApplicationContextProvider applicationContextProvider = new ApplicationContextProvider();
|
||||
return applicationContextProvider;
|
||||
}
|
||||
|
||||
@Bean
|
||||
public KieConfigurationData createKieConfigurationData(){
|
||||
KieConfigurationData kieConfigurationData = new KieConfigurationData();
|
||||
kieConfigurationData.setKiewbUrl(kiewbUrl);
|
||||
return kieConfigurationData;
|
||||
}
|
||||
@Override
|
||||
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
|
||||
return application.sources(DroolsSpringBootConsoleApplication.class);
|
||||
|
|
@ -34,6 +49,10 @@ public class DroolsSpringBootConsoleApplication extends SpringBootServletInitial
|
|||
SpringApplication.run(DroolsSpringBootConsoleApplication.class, args);
|
||||
}
|
||||
|
||||
@EventListener(ApplicationReadyEvent.class)
|
||||
public void InitPlatform(){
|
||||
dababaseContentInit.initDatabaseIfNecessary();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,102 @@
|
|||
package org.chtijbug.drools.console.middle;
|
||||
|
||||
import org.chtijbug.drools.proxy.persistence.model.*;
|
||||
import org.chtijbug.drools.proxy.persistence.repository.*;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.UUID;
|
||||
|
||||
@Service
|
||||
public class DababaseContentInit {
|
||||
|
||||
@Value("${kie-wb.mainwbintern}")
|
||||
private String mainwbUrlIntern;
|
||||
|
||||
@Value("${kie-wb.mainwbextern}")
|
||||
private String mainwbExtern;
|
||||
|
||||
@Autowired
|
||||
private UserRepository userRepository;
|
||||
|
||||
@Autowired
|
||||
private UserRolesRepository userRolesRepository;
|
||||
|
||||
@Autowired
|
||||
private UserGroupsRepository userGroupsRepository;
|
||||
|
||||
@Autowired
|
||||
private KieWorkbenchRepository kieWorkbenchRepository;
|
||||
|
||||
@Autowired
|
||||
private CustomerRepository customerRepository;
|
||||
|
||||
public void initDatabaseIfNecessary(){
|
||||
|
||||
User adminUser = userRepository.findByLogin("admin");
|
||||
if (adminUser==null){
|
||||
|
||||
userRolesRepository.save( new UserRoles(UUID.randomUUID().toString(),"process-admin"));
|
||||
userRolesRepository.save( new UserRoles(UUID.randomUUID().toString(),"manager"));
|
||||
userRolesRepository.save( new UserRoles(UUID.randomUUID().toString(),"admin"));
|
||||
userRolesRepository.save( new UserRoles(UUID.randomUUID().toString(),"analyst"));
|
||||
userRolesRepository.save( new UserRoles(UUID.randomUUID().toString(),"rest-all"));
|
||||
userRolesRepository.save( new UserRoles(UUID.randomUUID().toString(),"developer"));
|
||||
userRolesRepository.save( new UserRoles(UUID.randomUUID().toString(),"rest-project"));
|
||||
userRolesRepository.save( new UserRoles(UUID.randomUUID().toString(),"user"));
|
||||
|
||||
|
||||
userGroupsRepository.save(new UserGroups(UUID.randomUUID().toString(),"kiemgmt"));
|
||||
userGroupsRepository.save(new UserGroups(UUID.randomUUID().toString(),"admingroup"));
|
||||
userGroupsRepository.save(new UserGroups(UUID.randomUUID().toString(),"demogroup"));
|
||||
|
||||
adminUser = new User(UUID.randomUUID().toString(),"admin","adminPymma00@");
|
||||
adminUser.getUserGroups().add(userGroupsRepository.findByName("kiemgmt"));
|
||||
adminUser.getUserGroups().add(userGroupsRepository.findByName("admingroup"));
|
||||
adminUser.getUserRoles().add(userRolesRepository.findByName("admin"));
|
||||
adminUser.getUserRoles().add(userRolesRepository.findByName("analyst"));
|
||||
adminUser.getUserRoles().add(userRolesRepository.findByName("rest-all"));
|
||||
userRepository.save(adminUser);
|
||||
|
||||
User nheronUser = new User(UUID.randomUUID().toString(),"nheron","adminnheron00@");
|
||||
nheronUser.getUserGroups().add(userGroupsRepository.findByName("kiemgmt"));
|
||||
nheronUser.getUserGroups().add(userGroupsRepository.findByName("admingroup"));
|
||||
nheronUser.getUserRoles().add(userRolesRepository.findByName("admin"));
|
||||
nheronUser.getUserRoles().add(userRolesRepository.findByName("analyst"));
|
||||
nheronUser.getUserRoles().add(userRolesRepository.findByName("rest-all"));
|
||||
userRepository.save(nheronUser);
|
||||
|
||||
KieWorkbench mainWorkbench = new KieWorkbench();
|
||||
mainWorkbench.setID(UUID.randomUUID().toString());
|
||||
mainWorkbench.setName("demo");
|
||||
mainWorkbench.setExternalUrl(mainwbExtern);
|
||||
mainWorkbench.setInternalUrl(mainwbUrlIntern);
|
||||
mainWorkbench = kieWorkbenchRepository.save(mainWorkbench);
|
||||
|
||||
|
||||
Customer demCustomer = new Customer();
|
||||
demCustomer.setKieWorkbench(mainWorkbench);
|
||||
demCustomer.setName("demoCustomer");
|
||||
demCustomer.setID(UUID.randomUUID().toString());
|
||||
customerRepository.save(demCustomer);
|
||||
|
||||
User demoUser = new User(UUID.randomUUID().toString(),"demo","demo");
|
||||
demoUser.getUserGroups().add(userGroupsRepository.findByName("demogroup"));
|
||||
demoUser.getUserRoles().add(userRolesRepository.findByName("user"));
|
||||
demoUser.getUserRoles().add(userRolesRepository.findByName("rest-all"));
|
||||
demoUser.getUserRoles().add(userRolesRepository.findByName("analyst"));
|
||||
demoUser.setWbName(mainWorkbench.getName());
|
||||
demoUser.setCustomer(demCustomer);
|
||||
userRepository.save(demoUser);
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
@ -10,6 +10,7 @@ import org.chtijbug.drools.console.vaadinComponent.componentView.service.dtmodel
|
|||
import org.drools.workbench.models.guided.dtable.backend.GuidedDTXMLPersistence;
|
||||
import org.drools.workbench.models.guided.dtable.shared.model.GuidedDecisionTable52;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.context.annotation.DependsOn;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.io.*;
|
||||
|
|
@ -18,6 +19,7 @@ import java.util.HashMap;
|
|||
import java.util.List;
|
||||
|
||||
@Service
|
||||
@DependsOn("applicationContext")
|
||||
public class DecisionTableExcelService {
|
||||
|
||||
@Value("${adminConsole.tmpdir}")
|
||||
|
|
|
|||
|
|
@ -7,7 +7,6 @@ import com.offbytwo.jenkins.model.View;
|
|||
import org.apache.commons.io.IOUtils;
|
||||
import org.chtijbug.drools.console.service.model.gitlab.GitLabConfigurationData;
|
||||
import org.chtijbug.drools.console.service.model.jenkins.JenkinsConfigurationData;
|
||||
import org.chtijbug.drools.console.service.model.kie.KieConfigurationData;
|
||||
import org.chtijbug.drools.console.service.util.AppContext;
|
||||
import org.springframework.core.io.ClassPathResource;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
|
@ -23,7 +22,6 @@ public class JenkinsService {
|
|||
JenkinsServer jenkins = null;
|
||||
|
||||
public void createJobForRepo(String jenkinsServerUrl, String username, String password, String viewName, String groupId, String artifactId, String pomXml, String nexusName, String nexusUrl, String jdkVersion) throws URISyntaxException, IOException {
|
||||
KieConfigurationData configKie = AppContext.getApplicationContext().getBean(KieConfigurationData.class);
|
||||
GitLabConfigurationData configGitLab = AppContext.getApplicationContext().getBean(GitLabConfigurationData.class);
|
||||
JenkinsConfigurationData jenkinsConfigurationData = AppContext.getApplicationContext().getBean(JenkinsConfigurationData.class);
|
||||
|
||||
|
|
|
|||
|
|
@ -6,6 +6,8 @@ import org.apache.commons.codec.binary.Base64;
|
|||
import org.chtijbug.drools.console.AddLog;
|
||||
import org.chtijbug.drools.console.service.model.UserConnected;
|
||||
import org.chtijbug.drools.console.service.model.kie.JobStatus;
|
||||
import org.chtijbug.drools.proxy.persistence.model.User;
|
||||
import org.chtijbug.drools.proxy.persistence.repository.UserRepository;
|
||||
import org.chtijbug.guvnor.server.jaxrs.api.UserLoginInformation;
|
||||
import org.chtijbug.guvnor.server.jaxrs.jaxb.Asset;
|
||||
import org.chtijbug.guvnor.server.jaxrs.model.PlatformProjectResponse;
|
||||
|
|
@ -13,6 +15,7 @@ import org.drools.workbench.models.guided.template.backend.RuleTemplateModelXMLP
|
|||
import org.drools.workbench.models.guided.template.shared.TemplateModel;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.http.*;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.web.client.RequestCallback;
|
||||
|
|
@ -27,23 +30,25 @@ public class KieRepositoryService {
|
|||
|
||||
private static Logger logger = LoggerFactory.getLogger(KieRepositoryService.class);
|
||||
|
||||
@Autowired
|
||||
private UserRepository userRepository;
|
||||
|
||||
private RestTemplate restTemplateKiewb = new RestTemplate();
|
||||
|
||||
private ObjectMapper mapper = new ObjectMapper();
|
||||
|
||||
private String pojoToStringMethod(String assetContent,List<HashMap<String,Object>> objects){
|
||||
private String pojoToStringMethod(String assetContent, List<HashMap<String, Object>> objects) {
|
||||
|
||||
TemplateModel model = RuleTemplateModelXMLPersistenceImpl.getInstance().unmarshal(assetContent);
|
||||
int i=0;
|
||||
int i = 0;
|
||||
model.clearRows();
|
||||
for(HashMap<String,Object> t:objects){
|
||||
for (HashMap<String, Object> t : objects) {
|
||||
|
||||
List<String> row=new ArrayList<>();
|
||||
for (Map.Entry<String,Object> entry:t.entrySet()){
|
||||
row.add(String.valueOf(entry.getValue()));
|
||||
List<String> row = new ArrayList<>();
|
||||
for (Map.Entry<String, Object> entry : t.entrySet()) {
|
||||
row.add(String.valueOf(entry.getValue()));
|
||||
}
|
||||
model.addRow(i,row.toArray(new String[row.size()]));
|
||||
model.addRow(i, row.toArray(new String[row.size()]));
|
||||
i++;
|
||||
}
|
||||
|
||||
|
|
@ -51,7 +56,7 @@ public class KieRepositoryService {
|
|||
return RuleTemplateModelXMLPersistenceImpl.getInstance().marshal(model);
|
||||
}
|
||||
|
||||
public void updateAssetSource(String url, String username, String password, String spaceName, String projectName, String assetName,String assetSource) {
|
||||
public void updateAssetSource(String url, String username, String password, String spaceName, String projectName, String assetName, String assetSource) {
|
||||
|
||||
String assetContent = getAssetSource(url,
|
||||
username,
|
||||
|
|
@ -76,11 +81,11 @@ public class KieRepositoryService {
|
|||
return extractedValue;
|
||||
});
|
||||
|
||||
// restTemplateKiewb.exchange(completeurl, HttpMethod.POST, requestCallBack(content, username, password), void.class);
|
||||
// restTemplateKiewb.exchange(completeurl, HttpMethod.POST, requestCallBack(content, username, password), void.class);
|
||||
System.out.println("");
|
||||
}
|
||||
|
||||
public String getAssetSource(String url, String username, String password, String spaceName, String projectName, String assetName) {
|
||||
public String getAssetSource(String url, String username, String password, String spaceName, String projectName, String assetName) {
|
||||
String completeurl = url + "/chtijbug/" + spaceName + "/" + projectName + "/assets/" + assetName + "/source";
|
||||
logger.info("url moteur reco : " + completeurl);
|
||||
ResponseEntity<String> response = restTemplateKiewb
|
||||
|
|
@ -122,30 +127,43 @@ public class KieRepositoryService {
|
|||
}
|
||||
|
||||
public UserConnected login(String url, String username, String password) {
|
||||
|
||||
User user = userRepository.findByLogin(username);
|
||||
String completeurl = url + "/chtijbug/login";
|
||||
logger.info("url moteur reco : " + completeurl);
|
||||
ResponseEntity<UserLoginInformation> response = restTemplateKiewb
|
||||
.execute(completeurl, HttpMethod.GET, requestCallback(null, username, password), clientHttpResponse -> {
|
||||
UserLoginInformation extractedResponse = null;
|
||||
if (clientHttpResponse.getBody() != null) {
|
||||
Scanner s = new Scanner(clientHttpResponse.getBody()).useDelimiter("\\A");
|
||||
String result = s.hasNext() ? s.next() : "";
|
||||
extractedResponse = mapper.readValue(result, UserLoginInformation.class);
|
||||
if (user != null && user.getPassword().equals(password)) {
|
||||
if (user.getCustomer()!= null &&
|
||||
user.getCustomer().getKieWorkbench()!= null
|
||||
&& user.getCustomer().getKieWorkbench().getInternalUrl()!= null){
|
||||
completeurl = user.getCustomer().getKieWorkbench().getInternalUrl()+"/rest/chtijbug/login";
|
||||
}
|
||||
|
||||
}
|
||||
ResponseEntity<UserLoginInformation> extractedValue = new ResponseEntity<>(extractedResponse, clientHttpResponse.getHeaders(), clientHttpResponse.getStatusCode());
|
||||
return extractedValue;
|
||||
});
|
||||
UserConnected userConnected = new UserConnected();
|
||||
logger.info("url moteur reco : " + completeurl);
|
||||
ResponseEntity<UserLoginInformation> response = restTemplateKiewb
|
||||
.execute(completeurl, HttpMethod.GET, requestCallback(null, username, password), clientHttpResponse -> {
|
||||
UserLoginInformation extractedResponse = null;
|
||||
if (clientHttpResponse.getBody() != null) {
|
||||
Scanner s = new Scanner(clientHttpResponse.getBody()).useDelimiter("\\A");
|
||||
String result = s.hasNext() ? s.next() : "";
|
||||
extractedResponse = mapper.readValue(result, UserLoginInformation.class);
|
||||
|
||||
UserLoginInformation responseBody = response.getBody();
|
||||
userConnected.setUserName(username);
|
||||
userConnected.setUserPassword(password);
|
||||
userConnected.setUserPassword(password);
|
||||
userConnected.getProjectResponses().addAll(responseBody.getProjects());
|
||||
userConnected.setUserName(username);
|
||||
}
|
||||
ResponseEntity<UserLoginInformation> extractedValue = new ResponseEntity<>(extractedResponse, clientHttpResponse.getHeaders(), clientHttpResponse.getStatusCode());
|
||||
return extractedValue;
|
||||
});
|
||||
UserConnected userConnected = new UserConnected();
|
||||
|
||||
return userConnected;
|
||||
UserLoginInformation responseBody = response.getBody();
|
||||
userConnected.setUserName(username);
|
||||
userConnected.setUserPassword(password);
|
||||
userConnected.setUserPassword(password);
|
||||
userConnected.getProjectResponses().addAll(responseBody.getProjects());
|
||||
userConnected.getRoles().addAll(responseBody.getRoles());
|
||||
userConnected.setUserName(username);
|
||||
|
||||
return userConnected;
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
public List<Asset> getListAssets(String url, String username, String password, String spaceName, String projectName) {
|
||||
|
|
@ -187,7 +205,7 @@ public class KieRepositoryService {
|
|||
JobStatus reponseMoteur;
|
||||
|
||||
reponseMoteur = response.getBody();
|
||||
workOnGoingView.addRow(reponseMoteur.toString(),ui);
|
||||
workOnGoingView.addRow(reponseMoteur.toString(), ui);
|
||||
return reponseMoteur;
|
||||
}
|
||||
|
||||
|
|
@ -213,8 +231,8 @@ public class KieRepositoryService {
|
|||
return reponseMoteur;
|
||||
}
|
||||
|
||||
private HttpEntity requestCallBack(final Object content, String username, String password){
|
||||
HttpHeaders httpHeaders=new HttpHeaders();
|
||||
private HttpEntity requestCallBack(final Object content, String username, String password) {
|
||||
HttpHeaders httpHeaders = new HttpHeaders();
|
||||
httpHeaders.add(
|
||||
HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON_VALUE);
|
||||
httpHeaders.add(
|
||||
|
|
@ -225,7 +243,7 @@ public class KieRepositoryService {
|
|||
String authHeader = "Basic " + new String(encodedAuth);
|
||||
httpHeaders.add(
|
||||
HttpHeaders.AUTHORIZATION, authHeader);
|
||||
HttpEntity httpEntity=new HttpEntity(content,httpHeaders);
|
||||
HttpEntity httpEntity = new HttpEntity(content, httpHeaders);
|
||||
|
||||
|
||||
return httpEntity;
|
||||
|
|
@ -234,11 +252,11 @@ public class KieRepositoryService {
|
|||
private RequestCallback requestCallback(final Object content, String username, String password) {
|
||||
return clientHttpRequest -> {
|
||||
if (content != null) {
|
||||
if (content instanceof String){
|
||||
String stringContent = (String)content;
|
||||
stringContent=stringContent.replace("\"","");
|
||||
if (content instanceof String) {
|
||||
String stringContent = (String) content;
|
||||
stringContent = stringContent.replace("\"", "");
|
||||
mapper.writeValue(clientHttpRequest.getBody(), stringContent);
|
||||
}else {
|
||||
} else {
|
||||
mapper.writeValue(clientHttpRequest.getBody(), content);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ import org.chtijbug.drools.console.service.model.UserConnected;
|
|||
import org.chtijbug.drools.console.service.model.kie.JobStatus;
|
||||
import org.chtijbug.drools.console.service.model.kie.KieConfigurationData;
|
||||
import org.chtijbug.drools.console.service.util.AppContext;
|
||||
import org.chtijbug.drools.proxy.persistence.json.KeyProject;
|
||||
import org.chtijbug.drools.proxy.persistence.json.KieProject;
|
||||
import org.chtijbug.drools.proxy.persistence.model.ContainerPojoPersist;
|
||||
import org.chtijbug.drools.proxy.persistence.model.ContainerRuntimePojoPersist;
|
||||
import org.chtijbug.drools.proxy.persistence.model.ProjectPersist;
|
||||
|
|
@ -67,7 +67,7 @@ public class ProjectPersistService {
|
|||
|
||||
for (PlatformProjectResponse platformProjectResponse : platformProjectResponses) {
|
||||
|
||||
ProjectPersist projectPersist = projectRepository.findByProjectName(new KeyProject(platformProjectResponse.getSpaceName(), platformProjectResponse.getName()));
|
||||
ProjectPersist projectPersist = projectRepository.findByProjectName(new KieProject(platformProjectResponse.getSpaceName(), platformProjectResponse.getName()));
|
||||
|
||||
if (projectPersist == null) {
|
||||
projectPersist = platformProjectResponseToProjectPersist(platformProjectResponse);
|
||||
|
|
@ -158,7 +158,7 @@ public class ProjectPersistService {
|
|||
ProjectPersist projectPersist = new ProjectPersist();
|
||||
projectPersist.setArtifactID(platformProjectResponse.getArtifactId());
|
||||
projectPersist.setGroupID(platformProjectResponse.getGroupId());
|
||||
projectPersist.setProjectName(new KeyProject(platformProjectResponse.getSpaceName(), platformProjectResponse.getName()));
|
||||
projectPersist.setProjectName(new KieProject(platformProjectResponse.getSpaceName(), platformProjectResponse.getName()));
|
||||
projectPersist.setProjectVersion(platformProjectResponse.getVersion());
|
||||
projectPersist.setStatus(ProjectPersist.ADEFINIR);
|
||||
projectPersist.setClassNameList(platformProjectResponse.getJavaClasses());
|
||||
|
|
|
|||
|
|
@ -1,7 +1,6 @@
|
|||
package org.chtijbug.drools.console.vaadinComponent.leftMenu.Action;
|
||||
|
||||
import com.vaadin.flow.component.button.Button;
|
||||
import com.vaadin.flow.component.dialog.Dialog;
|
||||
import com.vaadin.flow.component.icon.VaadinIcon;
|
||||
import com.vaadin.flow.component.orderedlayout.VerticalLayout;
|
||||
import org.chtijbug.drools.console.service.ProjectPersistService;
|
||||
|
|
@ -30,7 +29,7 @@ public class DeploymentAction extends VerticalLayout {
|
|||
|
||||
projectPersistService= AppContext.getApplicationContext().getBean(ProjectPersistService.class);
|
||||
|
||||
definirProject =new Button("Défine your project", VaadinIcon.CODE.create());
|
||||
definirProject =new Button("Define your project", VaadinIcon.CODE.create());
|
||||
definirProject.setClassName("leftMenu-global-button");
|
||||
definirProject.setEnabled(false);
|
||||
add(definirProject);
|
||||
|
|
|
|||
|
|
@ -104,9 +104,12 @@ public class FormulaireComposant extends VerticalLayout {
|
|||
}
|
||||
});
|
||||
add(login);
|
||||
|
||||
password.getPasswordField().setValue(configKie.getPassword());
|
||||
username.getTextField().setValue(configKie.getUserName());
|
||||
if (configKie.getPassword()!= null) {
|
||||
password.getPasswordField().setValue(configKie.getPassword());
|
||||
}
|
||||
if (configKie.getUserName()!= null) {
|
||||
username.getTextField().setValue(configKie.getUserName());
|
||||
}
|
||||
|
||||
}
|
||||
public void verifyValidity(){
|
||||
|
|
|
|||
|
|
@ -41,7 +41,11 @@ public class MenuPrincipal extends HorizontalLayout {
|
|||
public MenuPrincipal(SqueletteComposant squeletteComposant){
|
||||
|
||||
userConnectedService= AppContext.getApplicationContext().getBean(UserConnectedService.class);
|
||||
|
||||
boolean isAdmin=false;
|
||||
if (userConnectedService.getUserConnected().getRoles() != null
|
||||
&& userConnectedService.getUserConnected().getRoles().contains("admin")){
|
||||
isAdmin=true;
|
||||
}
|
||||
addClassName("menu-principal-menubar-content");
|
||||
|
||||
InputStreamFactory inputStreamFactory=new InputStreamFactory() {
|
||||
|
|
@ -74,7 +78,7 @@ public class MenuPrincipal extends HorizontalLayout {
|
|||
}
|
||||
});
|
||||
|
||||
deployement=new Button("Déployment");
|
||||
deployement=new Button("Artifact");
|
||||
deployement.setClassName("menu-principal-button");
|
||||
add(deployement);
|
||||
deployement.addClickListener(buttonClickEvent -> {
|
||||
|
|
|
|||
|
|
@ -1,5 +1,7 @@
|
|||
server.port=${port:8200}
|
||||
kie-wb.baseurl=http://localhost:8080/kie-wb/rest
|
||||
kie-wb.mainwbintern=http://localhost:8080/kie-wb
|
||||
kie-wb.mainwbextern=http://localhost:8080/kie-wb
|
||||
kie-wb.username=admin
|
||||
kie-wb.password=admin
|
||||
|
||||
|
|
|
|||
|
|
@ -1,34 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xmlns:context="http://www.springframework.org/schema/context"
|
||||
xmlns="http://www.springframework.org/schema/beans"
|
||||
xsi:schemaLocation="http://www.springframework.org/schema/beans
|
||||
http://www.springframework.org/schema/beans/spring-beans.xsd
|
||||
http://www.springframework.org/schema/context
|
||||
http://www.springframework.org/schema/context/spring-context-4.1.xsd">
|
||||
<context:component-scan base-package="org.chtijbug.drools.console"/>
|
||||
<bean class="org.chtijbug.drools.console.service.model.kie.KieConfigurationData">
|
||||
<property name="userName" value="${kie-wb.username}"/>
|
||||
<property name="password" value="${kie-wb.password}"/>
|
||||
<property name="kiewbUrl" value="${kie-wb.baseurl}"/>
|
||||
|
||||
</bean>
|
||||
<!--bean class="org.chtijbug.drools.console.service.model.gitlab.GitLabConfigurationData">
|
||||
<property name="url" value="${gitlab.url}"/>
|
||||
<property name="token" value="${gitlab.token}"/>
|
||||
<property name="groupName" value="${gitlab.group}"/>
|
||||
<property name="baseUrl" value="${gitlab.baseurl}"/>
|
||||
</bean>
|
||||
<bean class="org.chtijbug.drools.console.service.model.jenkins.JenkinsConfigurationData">
|
||||
<property name="url" value="${jenkins.url}"/>
|
||||
<property name="username" value="${jenkins.username}"/>
|
||||
<property name="password" value="${jenkins.password}"/>
|
||||
<property name="credentials" value="${jenkins.credentials}"/>
|
||||
<property name="nexusName" value="${jenkins.nexusName}"/>
|
||||
<property name="nexusUrl" value="${jenkins.nexusUrl}"/>
|
||||
<property name="jdkVersion" value="${jenkins.jdkVersion}"/>
|
||||
<property name="groupName" value="${jenkins.group}"/>
|
||||
</bean-->
|
||||
<bean name="applicationContext" class="org.chtijbug.drools.console.service.util.ApplicationContextProvider"/>
|
||||
|
||||
</beans>
|
||||
|
|
@ -1,28 +0,0 @@
|
|||
Pymma kie realm for WildFly Elytron
|
||||
=======================================
|
||||
|
||||
Simple demonstration security realm for WildFly Elytron providing one user identity "myadmin" with password "mypassword".
|
||||
It support password verification only, so it can be used with plain-text authentication mechanisms like BASIC, PLAIN or FORM.
|
||||
To support mechanisms like DIGEST or SCRAM you will need to implement credential acquirement too.
|
||||
|
||||
Usage
|
||||
*****
|
||||
|
||||
Compile:
|
||||
|
||||
mvn package
|
||||
|
||||
Add the module into the WildFly:
|
||||
|
||||
bin/jboss-cli.sh
|
||||
module add --name=com.pymmasoftware.kie-realm --resources=custom-realm-1.0.0.Alpha1-SNAPSHOT.jar --dependencies=org.wildfly.security.elytron,org.wildfly.extension.elytron
|
||||
|
||||
Add a custom-realm into the subsystem:
|
||||
|
||||
/subsystem=elytron/custom-realm=pymmaKieRealm:add(module=com.pymmasoftware.kie-realm, class-name=org.chtijbug.wildfly.realm.PymmaKieRealm, configuration={myAttribute="myValue"})
|
||||
|
||||
|
||||
use it
|
||||
/subsystem=elytron/security-domain=ApplicationDomain:list-add(name=realms, index=0, value={realm=pymmaKieRealm})
|
||||
/subsystem=elytron/security-domain=ApplicationDomain:write-attribute(name=default-realm, value=pymmaKieRealm)
|
||||
reload
|
||||
|
|
@ -1,129 +0,0 @@
|
|||
/*
|
||||
* Copyright 2018 Red Hat, Inc.
|
||||
*
|
||||
* 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.chtijbug.wildfly.realm;
|
||||
|
||||
import com.mongodb.MongoClientSettings;
|
||||
import com.mongodb.client.MongoClient;
|
||||
import com.mongodb.client.MongoClients;
|
||||
import com.mongodb.client.MongoDatabase;
|
||||
import org.bson.codecs.configuration.CodecRegistry;
|
||||
import org.bson.codecs.pojo.PojoCodecProvider;
|
||||
import org.wildfly.extension.elytron.Configurable;
|
||||
import org.wildfly.security.auth.SupportLevel;
|
||||
import org.wildfly.security.auth.server.RealmIdentity;
|
||||
import org.wildfly.security.auth.server.RealmUnavailableException;
|
||||
import org.wildfly.security.auth.server.SecurityRealm;
|
||||
import org.wildfly.security.credential.Credential;
|
||||
import org.wildfly.security.evidence.Evidence;
|
||||
import org.wildfly.security.evidence.PasswordGuessEvidence;
|
||||
|
||||
import java.security.Principal;
|
||||
import java.security.spec.AlgorithmParameterSpec;
|
||||
import java.util.Arrays;
|
||||
import java.util.Map;
|
||||
|
||||
import static org.bson.codecs.configuration.CodecRegistries.fromProviders;
|
||||
import static org.bson.codecs.configuration.CodecRegistries.fromRegistries;
|
||||
|
||||
/**
|
||||
* Example of custom-realm for WildFly Elytron
|
||||
* Realm providing one identity "myadmin" with password "mypassword"
|
||||
*
|
||||
* @author <a href="mailto:jkalina@redhat.com">Jan Kalina</a>
|
||||
*/
|
||||
public class PymmaKieRealm implements SecurityRealm, Configurable {
|
||||
|
||||
private String connectionString;
|
||||
private String databaseName;
|
||||
|
||||
|
||||
private MongoClient mongoClient;
|
||||
CodecRegistry pojoCodecRegistry;
|
||||
MongoDatabase database;
|
||||
// receiving configuration from subsystem
|
||||
public void initialize(Map<String, String> configuration) {
|
||||
connectionString = configuration.get("connectionString");
|
||||
databaseName = configuration.get("name");
|
||||
|
||||
System.out.println("PymmaKieRealm initialized with databaseName = " + connectionString );
|
||||
|
||||
|
||||
mongoClient = MongoClients.create(connectionString);
|
||||
pojoCodecRegistry = fromRegistries(MongoClientSettings.getDefaultCodecRegistry(),
|
||||
fromProviders(PojoCodecProvider.builder().automatic(true).build()));
|
||||
database = mongoClient.getDatabase(databaseName).withCodecRegistry(pojoCodecRegistry);
|
||||
System.out.println("All setup");
|
||||
}
|
||||
|
||||
// this realm does not allow acquiring credentials
|
||||
public SupportLevel getCredentialAcquireSupport(Class<? extends Credential> credentialType, String algorithmName,
|
||||
AlgorithmParameterSpec parameterSpec) throws RealmUnavailableException {
|
||||
return SupportLevel.UNSUPPORTED;
|
||||
}
|
||||
|
||||
// this realm will be able to verify password evidences only
|
||||
public SupportLevel getEvidenceVerifySupport(Class<? extends Evidence> evidenceType, String algorithmName)
|
||||
throws RealmUnavailableException {
|
||||
return PasswordGuessEvidence.class.isAssignableFrom(evidenceType) ? SupportLevel.POSSIBLY_SUPPORTED : SupportLevel.UNSUPPORTED;
|
||||
}
|
||||
|
||||
public RealmIdentity getRealmIdentity(final Principal principal) throws RealmUnavailableException {
|
||||
|
||||
if ("myadmin".equals(principal.getName())) { // identity "myadmin" will have password "mypassword"
|
||||
return new RealmIdentity() {
|
||||
public Principal getRealmIdentityPrincipal() {
|
||||
return principal;
|
||||
}
|
||||
|
||||
public SupportLevel getCredentialAcquireSupport(Class<? extends Credential> credentialType,
|
||||
String algorithmName, AlgorithmParameterSpec parameterSpec) throws RealmUnavailableException {
|
||||
return SupportLevel.UNSUPPORTED;
|
||||
}
|
||||
|
||||
public <C extends Credential> C getCredential(Class<C> credentialType) throws RealmUnavailableException {
|
||||
return null;
|
||||
}
|
||||
|
||||
public SupportLevel getEvidenceVerifySupport(Class<? extends Evidence> evidenceType, String algorithmName)
|
||||
throws RealmUnavailableException {
|
||||
return PasswordGuessEvidence.class.isAssignableFrom(evidenceType) ? SupportLevel.SUPPORTED : SupportLevel.UNSUPPORTED;
|
||||
}
|
||||
|
||||
// evidence will be accepted if it is password "mypassword"
|
||||
public boolean verifyEvidence(Evidence evidence) throws RealmUnavailableException {
|
||||
if (evidence instanceof PasswordGuessEvidence) {
|
||||
PasswordGuessEvidence guess = (PasswordGuessEvidence) evidence;
|
||||
try {
|
||||
return Arrays.equals("mypassword".toCharArray(), guess.getGuess());
|
||||
|
||||
} finally {
|
||||
guess.destroy();
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean exists() throws RealmUnavailableException {
|
||||
return true;
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
return RealmIdentity.NON_EXISTENT;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -67,6 +67,14 @@
|
|||
<artifactId>javax.inject</artifactId>
|
||||
<version>1</version>
|
||||
</dependency>
|
||||
|
||||
<!--dependency>
|
||||
<groupId>org.mongodb</groupId>
|
||||
<artifactId>mongodb-driver</artifactId>
|
||||
<version>${version.mongodb.driver}</version>
|
||||
<scope>provided</scope>
|
||||
</dependency-->
|
||||
|
||||
</dependencies>
|
||||
|
||||
</project>
|
||||
|
|
@ -36,17 +36,19 @@ import java.util.Map;
|
|||
* <p>Groups manager service provider implementation for Apache tomcat, when using default realm based on properties files.</p>
|
||||
* @since 0.8.0
|
||||
*/
|
||||
public class KiePlatformGroupManager implements GroupManager,
|
||||
ContextualManager {
|
||||
public class KiePlatformGroupManager implements GroupManager, ContextualManager {
|
||||
|
||||
private static final Logger LOG = LoggerFactory.getLogger(KiePlatformGroupManager.class);
|
||||
|
||||
|
||||
|
||||
IdentifierRuntimeSearchEngine<Group> groupsSearchEngine;
|
||||
|
||||
public KiePlatformGroupManager() {
|
||||
this(new ConfigProperties(System.getProperties()));
|
||||
}
|
||||
|
||||
|
||||
public KiePlatformGroupManager(final Map<String, String> gitPrefs) {
|
||||
this(new ConfigProperties(gitPrefs));
|
||||
}
|
||||
|
|
@ -67,17 +69,17 @@ public class KiePlatformGroupManager implements GroupManager,
|
|||
|
||||
@Override
|
||||
public SearchResponse<Group> search(SearchRequest request) throws SecurityManagementException {
|
||||
return null;
|
||||
throw new UnsupportedServiceCapabilityException(Capability.CAN_SEARCH_GROUPS);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Group get(String identifier) throws SecurityManagementException {
|
||||
return null;
|
||||
throw new UnsupportedServiceCapabilityException(Capability.CAN_READ_GROUP);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Group create(Group entity) throws SecurityManagementException {
|
||||
return null;
|
||||
throw new UnsupportedServiceCapabilityException(Capability.CAN_ADD_GROUP);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
@ -87,7 +89,7 @@ public class KiePlatformGroupManager implements GroupManager,
|
|||
|
||||
@Override
|
||||
public void delete(String... identifiers) throws SecurityManagementException {
|
||||
|
||||
throw new UnsupportedServiceCapabilityException(Capability.CAN_DELETE_GROUP);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
@ -102,21 +104,24 @@ public class KiePlatformGroupManager implements GroupManager,
|
|||
}
|
||||
|
||||
protected CapabilityStatus getCapabilityStatus(Capability capability) {
|
||||
/**
|
||||
if (capability != null) {
|
||||
switch (capability) {
|
||||
case CAN_SEARCH_GROUPS:
|
||||
case CAN_ADD_GROUP:
|
||||
case CAN_UPDATE_GROUP:
|
||||
case CAN_READ_GROUP:
|
||||
case CAN_DELETE_GROUP:
|
||||
return CapabilityStatus.ENABLED;
|
||||
}
|
||||
}
|
||||
**/
|
||||
return CapabilityStatus.UNSUPPORTED;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void assignUsers(String name,
|
||||
Collection<String> users) throws SecurityManagementException {
|
||||
|
||||
throw new UnsupportedServiceCapabilityException(Capability.CAN_ASSIGN_GROUPS);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,126 @@
|
|||
/*
|
||||
* Copyright 2016 Red Hat, Inc. and/or its affiliates.
|
||||
*
|
||||
* 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.chtijbug.guvnor.uberfire.security;
|
||||
|
||||
import org.jboss.errai.security.shared.api.Group;
|
||||
import org.jboss.errai.security.shared.api.Role;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.uberfire.commons.config.ConfigProperties;
|
||||
import org.uberfire.ext.security.management.api.*;
|
||||
import org.uberfire.ext.security.management.api.exception.SecurityManagementException;
|
||||
import org.uberfire.ext.security.management.api.exception.UnsupportedServiceCapabilityException;
|
||||
import org.uberfire.ext.security.management.impl.RoleManagerSettingsImpl;
|
||||
import org.uberfire.ext.security.management.search.GroupsIdentifierRuntimeSearchEngine;
|
||||
import org.uberfire.ext.security.management.search.IdentifierRuntimeSearchEngine;
|
||||
import org.uberfire.ext.security.management.util.SecurityManagementUtils;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* <p>Groups manager service provider implementation for Apache tomcat, when using default realm based on properties files.</p>
|
||||
* @since 0.8.0
|
||||
*/
|
||||
public class KiePlatformRoleManager implements RoleManager,ContextualManager {
|
||||
|
||||
private static final Logger LOG = LoggerFactory.getLogger(KiePlatformRoleManager.class);
|
||||
|
||||
|
||||
|
||||
IdentifierRuntimeSearchEngine<Group> groupsSearchEngine;
|
||||
|
||||
public KiePlatformRoleManager() {
|
||||
this(new ConfigProperties(System.getProperties()));
|
||||
}
|
||||
|
||||
|
||||
|
||||
public KiePlatformRoleManager(final Map<String, String> gitPrefs) {
|
||||
this(new ConfigProperties(gitPrefs));
|
||||
}
|
||||
|
||||
public KiePlatformRoleManager(final ConfigProperties gitPrefs) {
|
||||
// loadConfig(gitPrefs);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void initialize(UserSystemManager userSystemManager) throws Exception {
|
||||
groupsSearchEngine = new GroupsIdentifierRuntimeSearchEngine();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void destroy() throws Exception {
|
||||
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public SearchResponse<Role> search(SearchRequest request) throws SecurityManagementException {
|
||||
throw new UnsupportedServiceCapabilityException(Capability.CAN_SEARCH_ROLES);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Role get(String identifier) throws SecurityManagementException {
|
||||
throw new UnsupportedServiceCapabilityException(Capability.CAN_READ_ROLE);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Role create(Role entity) throws SecurityManagementException {
|
||||
throw new UnsupportedServiceCapabilityException(Capability.CAN_ADD_ROLE);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Role update(Role entity) throws SecurityManagementException {
|
||||
throw new UnsupportedServiceCapabilityException(Capability.CAN_UPDATE_ROLE);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
public void delete(String... identifiers) throws SecurityManagementException {
|
||||
throw new UnsupportedServiceCapabilityException(Capability.CAN_DELETE_ROLE);
|
||||
}
|
||||
|
||||
@Override
|
||||
public RoleManagerSettings getSettings() {
|
||||
final Map<Capability, CapabilityStatus> capabilityStatusMap = new HashMap<Capability, CapabilityStatus>(8);
|
||||
for (final Capability capability : SecurityManagementUtils.ROLES_CAPABILITIES) {
|
||||
capabilityStatusMap.put(capability,
|
||||
getCapabilityStatus(capability));
|
||||
}
|
||||
return new RoleManagerSettingsImpl(capabilityStatusMap);
|
||||
}
|
||||
|
||||
protected CapabilityStatus getCapabilityStatus(Capability capability) {
|
||||
/**
|
||||
if (capability != null) {
|
||||
switch (capability) {
|
||||
case CAN_SEARCH_ROLES:
|
||||
case CAN_ADD_ROLE:
|
||||
case CAN_UPDATE_ROLE:
|
||||
case CAN_READ_ROLE:
|
||||
case CAN_DELETE_ROLE:
|
||||
return CapabilityStatus.ENABLED;
|
||||
}
|
||||
}
|
||||
**/
|
||||
return CapabilityStatus.UNSUPPORTED;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
@ -1,30 +1,53 @@
|
|||
package org.chtijbug.guvnor.uberfire.security;
|
||||
|
||||
|
||||
import org.uberfire.ext.security.management.UberfireRoleManager;
|
||||
import org.uberfire.ext.security.management.api.GroupManager;
|
||||
import org.uberfire.ext.security.management.api.RoleManager;
|
||||
import org.uberfire.ext.security.management.api.UserManagementService;
|
||||
import org.uberfire.ext.security.management.api.UserManager;
|
||||
import org.uberfire.ext.security.management.service.AbstractUserManagementService;
|
||||
|
||||
import javax.enterprise.context.Dependent;
|
||||
import javax.inject.Inject;
|
||||
import javax.inject.Named;
|
||||
|
||||
@Dependent
|
||||
@Named(value = "TomcatUserManagementService")
|
||||
public class KiePlatformSecurityService extends AbstractUserManagementService {
|
||||
@Named(value = "PymmaKieSecurityService")
|
||||
public class KiePlatformSecurityService implements UserManagementService {
|
||||
|
||||
KiePlatformUserManager userManager;
|
||||
KiePlatformGroupManager groupManager;
|
||||
KiePlatformRoleManager roleManager;
|
||||
|
||||
private String connectionString;
|
||||
private String databaseName;
|
||||
// private MongoClient mongoClient;
|
||||
// private CodecRegistry pojoCodecRegistry;
|
||||
//private MongoDatabase database;
|
||||
|
||||
public KiePlatformSecurityService() {
|
||||
System.out.println("KiePlatformSecurityService initialized with databaseName = " + connectionString );
|
||||
}
|
||||
|
||||
@Inject
|
||||
public KiePlatformSecurityService(final KiePlatformUserManager userManager,
|
||||
final KiePlatformGroupManager groupManager,
|
||||
final @Named("uberfireRoleManager") UberfireRoleManager roleManager) {
|
||||
super(roleManager);
|
||||
public KiePlatformSecurityService(KiePlatformUserManager userManager,
|
||||
KiePlatformGroupManager groupManager,
|
||||
KiePlatformRoleManager roleManager) {
|
||||
|
||||
connectionString = System.getProperty("connectionString");
|
||||
databaseName=System.getProperty("name");
|
||||
System.out.println("KiePlatformSecurityService initialized with databaseName = " + connectionString );
|
||||
//mongoClient = MongoClients.create(connectionString);
|
||||
//pojoCodecRegistry = fromRegistries(MongoClientSettings.getDefaultCodecRegistry(),
|
||||
// fromProviders(PojoCodecProvider.builder().automatic(true).build()));
|
||||
// database = mongoClient.getDatabase(databaseName).withCodecRegistry(pojoCodecRegistry);
|
||||
System.out.println("All setup");
|
||||
this.userManager = userManager;
|
||||
this.groupManager = groupManager;
|
||||
this.roleManager = roleManager;
|
||||
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public UserManager users() {
|
||||
return new KiePlatformUserManager();
|
||||
|
|
@ -34,4 +57,9 @@ public class KiePlatformSecurityService extends AbstractUserManagementService {
|
|||
public GroupManager groups() {
|
||||
return new KiePlatformGroupManager();
|
||||
}
|
||||
|
||||
@Override
|
||||
public RoleManager roles() {
|
||||
return new KiePlatformRoleManager();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -22,6 +22,7 @@ import org.slf4j.LoggerFactory;
|
|||
import org.uberfire.commons.config.ConfigProperties;
|
||||
import org.uberfire.ext.security.management.api.*;
|
||||
import org.uberfire.ext.security.management.api.exception.SecurityManagementException;
|
||||
import org.uberfire.ext.security.management.api.exception.UnsupportedServiceCapabilityException;
|
||||
import org.uberfire.ext.security.management.impl.UserManagerSettingsImpl;
|
||||
import org.uberfire.ext.security.management.search.IdentifierRuntimeSearchEngine;
|
||||
import org.uberfire.ext.security.management.search.UsersIdentifierRuntimeSearchEngine;
|
||||
|
|
@ -32,21 +33,20 @@ import java.util.HashMap;
|
|||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
import static org.kie.soup.commons.validation.PortablePreconditions.checkNotNull;
|
||||
|
||||
/**
|
||||
* <p>Users manager service provider implementation for Apache tomcat, when using default realm based on properties files.</p>
|
||||
*
|
||||
* @since 0.8.0
|
||||
*/
|
||||
public class KiePlatformUserManager implements UserManager,
|
||||
ContextualManager {
|
||||
public class KiePlatformUserManager implements UserManager, ContextualManager {
|
||||
|
||||
private static final Logger LOG = LoggerFactory.getLogger(KiePlatformUserManager.class);
|
||||
|
||||
UserSystemManager userSystemManager;
|
||||
IdentifierRuntimeSearchEngine<User> usersSearchEngine;
|
||||
|
||||
|
||||
|
||||
public KiePlatformUserManager() {
|
||||
this(new ConfigProperties(System.getProperties()));
|
||||
}
|
||||
|
|
@ -59,6 +59,8 @@ public class KiePlatformUserManager implements UserManager,
|
|||
//loadConfig(gitPrefs);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
public void initialize(final UserSystemManager userSystemManager) throws Exception {
|
||||
this.userSystemManager = userSystemManager;
|
||||
|
|
@ -72,28 +74,27 @@ public class KiePlatformUserManager implements UserManager,
|
|||
|
||||
@Override
|
||||
public SearchResponse<User> search(SearchRequest request) throws SecurityManagementException {
|
||||
return null;
|
||||
throw new UnsupportedServiceCapabilityException(Capability.CAN_SEARCH_USERS);
|
||||
}
|
||||
|
||||
@Override
|
||||
public User get(String identifier) throws SecurityManagementException {
|
||||
return null;
|
||||
throw new UnsupportedServiceCapabilityException(Capability.CAN_READ_USER);
|
||||
}
|
||||
|
||||
@Override
|
||||
public User create(User entity) throws SecurityManagementException {
|
||||
return null;
|
||||
throw new UnsupportedServiceCapabilityException(Capability.CAN_ADD_USER);
|
||||
}
|
||||
|
||||
@Override
|
||||
public User update(User entity) throws SecurityManagementException {
|
||||
return null;
|
||||
throw new UnsupportedServiceCapabilityException(Capability.CAN_UPDATE_USER);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void delete(String... identifiers) throws SecurityManagementException {
|
||||
checkNotNull("identifiers",
|
||||
identifiers);
|
||||
throw new UnsupportedServiceCapabilityException(Capability.CAN_DELETE_USER);
|
||||
|
||||
}
|
||||
|
||||
|
|
@ -121,11 +122,7 @@ public class KiePlatformUserManager implements UserManager,
|
|||
@Override
|
||||
public void assignRoles(String username,
|
||||
Collection<String> roles) throws SecurityManagementException {
|
||||
Set<String> userGroups = SecurityManagementUtils.groupsToString(SecurityManagementUtils.getGroups(userSystemManager,
|
||||
username));
|
||||
userGroups.addAll(roles);
|
||||
doAssignGroups(username,
|
||||
userGroups);
|
||||
throw new UnsupportedServiceCapabilityException(Capability.CAN_ASSIGN_ROLES);
|
||||
}
|
||||
|
||||
private void doAssignGroups(String username,
|
||||
|
|
@ -136,13 +133,12 @@ public class KiePlatformUserManager implements UserManager,
|
|||
@Override
|
||||
public void changePassword(String username,
|
||||
String newPassword) throws SecurityManagementException {
|
||||
checkNotNull("username",
|
||||
username);
|
||||
|
||||
throw new UnsupportedServiceCapabilityException(Capability.CAN_CHANGE_PASSWORD);
|
||||
|
||||
}
|
||||
|
||||
protected CapabilityStatus getCapabilityStatus(Capability capability) {
|
||||
/**
|
||||
if (capability != null) {
|
||||
switch (capability) {
|
||||
case CAN_SEARCH_USERS:
|
||||
|
|
@ -152,12 +148,13 @@ public class KiePlatformUserManager implements UserManager,
|
|||
case CAN_READ_USER:
|
||||
case CAN_MANAGE_ATTRIBUTES:
|
||||
case CAN_ASSIGN_GROUPS:
|
||||
/** As it is using the UberfireRoleManager. **/
|
||||
|
||||
case CAN_ASSIGN_ROLES:
|
||||
case CAN_CHANGE_PASSWORD:
|
||||
return CapabilityStatus.ENABLED;
|
||||
}
|
||||
}
|
||||
**/
|
||||
return CapabilityStatus.UNSUPPORTED;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -9,27 +9,22 @@
|
|||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<artifactId>drools-framework-elytron-realm</artifactId>
|
||||
<artifactId>drools-framework-wildfly-login-module</artifactId>
|
||||
|
||||
<dependencies>
|
||||
<!-- interface SecurityRealm -->
|
||||
<dependency>
|
||||
<groupId>org.wildfly.security</groupId>
|
||||
<artifactId>wildfly-elytron</artifactId>
|
||||
<version>${version.org.wildfly.security.wildfly-elytron}</version>
|
||||
</dependency>
|
||||
<!-- interface Configurable -->
|
||||
<dependency>
|
||||
<groupId>org.wildfly.core</groupId>
|
||||
<artifactId>wildfly-elytron-integration</artifactId>
|
||||
<version>${version.org.wildfly.core}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.mongodb</groupId>
|
||||
<artifactId>mongodb-driver</artifactId>
|
||||
<version>${version.mongodb.driver}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.picketbox</groupId>
|
||||
<artifactId>picketbox</artifactId>
|
||||
<version>5.0.3.Final</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
<build>
|
||||
<finalName>pymma-kie-loginmodule</finalName>
|
||||
<plugins>
|
||||
|
||||
<plugin>
|
||||
|
|
@ -82,4 +77,5 @@
|
|||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
|
||||
</project>
|
||||
|
|
@ -0,0 +1,108 @@
|
|||
package org.chtijbug.wildfly.loginmodule;
|
||||
|
||||
import com.mongodb.DBRef;
|
||||
import com.mongodb.MongoClientSettings;
|
||||
import com.mongodb.client.MongoClient;
|
||||
import com.mongodb.client.MongoClients;
|
||||
import com.mongodb.client.MongoCollection;
|
||||
import com.mongodb.client.MongoDatabase;
|
||||
import org.bson.Document;
|
||||
import org.bson.codecs.configuration.CodecRegistry;
|
||||
import org.bson.codecs.pojo.PojoCodecProvider;
|
||||
import org.jboss.security.SimpleGroup;
|
||||
import org.jboss.security.SimplePrincipal;
|
||||
import org.jboss.security.auth.spi.UsernamePasswordLoginModule;
|
||||
|
||||
import javax.security.auth.Subject;
|
||||
import javax.security.auth.callback.CallbackHandler;
|
||||
import javax.security.auth.login.LoginException;
|
||||
import java.security.acl.Group;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.atomic.AtomicReference;
|
||||
import java.util.function.Consumer;
|
||||
|
||||
import static com.mongodb.client.model.Filters.eq;
|
||||
import static org.bson.codecs.configuration.CodecRegistries.fromProviders;
|
||||
import static org.bson.codecs.configuration.CodecRegistries.fromRegistries;
|
||||
|
||||
public class KiePlatformLoginModule extends UsernamePasswordLoginModule {
|
||||
|
||||
private String connectionString;
|
||||
private String databaseName;
|
||||
private MongoClient mongoClient;
|
||||
CodecRegistry pojoCodecRegistry;
|
||||
MongoDatabase database;
|
||||
|
||||
|
||||
@Override
|
||||
public void initialize(Subject subject, CallbackHandler callbackHandler, Map<String, ?> sharedState, Map<String, ?> options) {
|
||||
super.initialize(subject, callbackHandler, sharedState, options);
|
||||
connectionString = (String)options.get("connectionString");
|
||||
databaseName = (String)options.get("name");
|
||||
|
||||
System.out.println("Pymma Login Module initialized with databaseName = " + connectionString );
|
||||
mongoClient = MongoClients.create(connectionString);
|
||||
pojoCodecRegistry = fromRegistries(MongoClientSettings.getDefaultCodecRegistry(),
|
||||
fromProviders(PojoCodecProvider.builder().automatic(true).build()));
|
||||
database = mongoClient.getDatabase(databaseName).withCodecRegistry(pojoCodecRegistry);
|
||||
System.out.println("All setup");
|
||||
}
|
||||
|
||||
@Override
|
||||
protected boolean validatePassword(String inputPassword, String expectedPassword) {
|
||||
System.out.println( "Pymma KieLogin validate password");
|
||||
|
||||
return inputPassword.equals(expectedPassword);
|
||||
|
||||
//return super.validatePassword(inputPassword, expectedPassword);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected String getUsersPassword() throws LoginException {
|
||||
System.out.format("KiePlatformLoginModule: authenticating user '%s'\n",
|
||||
getUsername());
|
||||
AtomicReference<String> password= new AtomicReference<>("");
|
||||
AtomicReference<String> userWorkbenchName= new AtomicReference<>("");
|
||||
MongoCollection<Document> userCollection = database.getCollection("user");
|
||||
userCollection.find(eq("login", getUsername())).forEach((Consumer<Document>) doc
|
||||
-> password.set((String) doc.get("password")));
|
||||
userCollection.find(eq("login", getUsername())).forEach((Consumer<Document>) doc
|
||||
-> userWorkbenchName.set((String) doc.get("wbName")));
|
||||
String wbName=System.getProperty("org.chtijbug.wbname");
|
||||
if (wbName==null || wbName.length()==0)
|
||||
wbName="demo";
|
||||
if (userWorkbenchName.get()==null || wbName.equals(userWorkbenchName.get())){
|
||||
return password.get();
|
||||
}else{
|
||||
return "";
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Group[] getRoleSets() throws LoginException {
|
||||
SimpleGroup group = new SimpleGroup("Roles");
|
||||
AtomicReference<ArrayList<DBRef>> roles= new AtomicReference<ArrayList<DBRef>>(new ArrayList());
|
||||
AtomicReference<ArrayList<DBRef>> groups= new AtomicReference<ArrayList<DBRef>>(new ArrayList());
|
||||
|
||||
MongoCollection<Document> userCollection = database.getCollection("user");
|
||||
userCollection.find(eq("login", getUsername())).forEach((Consumer<Document>) doc
|
||||
-> roles.set((ArrayList) doc.get("userRoles")));
|
||||
userCollection.find(eq("login", getUsername())).forEach((Consumer<Document>) doc
|
||||
-> groups.set((ArrayList) doc.get("userGroups")));
|
||||
|
||||
MongoCollection<Document> userRolesCollection = database.getCollection("userRoles");
|
||||
for (DBRef dbRef : roles.get()){
|
||||
Document role = userRolesCollection.find(eq("_id", dbRef.getId())).first();
|
||||
group.addMember(new SimplePrincipal((String)role.get("name")));
|
||||
|
||||
}
|
||||
MongoCollection<Document> userGroupsCollection = database.getCollection("userGroups");
|
||||
for (DBRef dbRef : groups.get()){
|
||||
Document userGroupdoc = userGroupsCollection.find(eq("_id", dbRef.getId())).first();
|
||||
group.addMember(new SimplePrincipal((String)userGroupdoc.get("name")));
|
||||
}
|
||||
return new Group[] { group };
|
||||
}
|
||||
}
|
||||
|
|
@ -40,11 +40,26 @@
|
|||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.pymmasoftware.jbpm</groupId>
|
||||
<artifactId>drools-framework-elytron-realm</artifactId>
|
||||
<artifactId>drools-framework-wildfly-login-module</artifactId>
|
||||
<version>${project.version}</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.uberfire</groupId>
|
||||
<artifactId>uberfire-security-management-wildfly</artifactId>
|
||||
<version>${jbpm.version}</version>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.pymmasoftware.jbpm</groupId>
|
||||
<artifactId>drools-framework-uberfire-security-service</artifactId>
|
||||
<version>${project.version}</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.mongodb</groupId>
|
||||
<artifactId>mongodb-driver</artifactId>
|
||||
<version>${version.mongodb.driver}</version>
|
||||
</dependency>
|
||||
|
||||
</dependencies>
|
||||
|
||||
|
|
@ -96,7 +111,7 @@
|
|||
<overWriteReleases>false</overWriteReleases>
|
||||
<overWriteSnapshots>false</overWriteSnapshots>
|
||||
<overWriteIfNewer>true</overWriteIfNewer>
|
||||
<excludeArtifactIds>drools-framework-elytron-realm</excludeArtifactIds>
|
||||
<excludeArtifactIds>drools-framework-wildfly-login-module</excludeArtifactIds>
|
||||
<includeGroupIds>com.pymmasoftware.jbpm</includeGroupIds>
|
||||
</configuration>
|
||||
</execution>
|
||||
|
|
@ -165,12 +180,12 @@
|
|||
<artifactItems>
|
||||
<artifactItem>
|
||||
<groupId>com.pymmasoftware.jbpm</groupId>
|
||||
<artifactId>drools-framework-elytron-realm</artifactId>
|
||||
<artifactId>drools-framework-wildfly-login-module</artifactId>
|
||||
<version>${project.version}</version>
|
||||
<type>jar</type>
|
||||
<overWrite>yes</overWrite>
|
||||
<outputDirectory>${project.build.directory}/</outputDirectory>
|
||||
<destFileName>pymma-kie-elytron.jar</destFileName>
|
||||
<destFileName>pymma-kie-login-module.jar</destFileName>
|
||||
</artifactItem>
|
||||
<artifactItem>
|
||||
<groupId>org.mongodb</groupId>
|
||||
|
|
@ -249,9 +264,9 @@
|
|||
<destName>kie-wb.war</destName>
|
||||
</file>
|
||||
<file>
|
||||
<source>${project.build.directory}/pymma-kie-elytron.jar</source>
|
||||
<source>${project.build.directory}/pymma-kie-login-module.jar</source>
|
||||
<outputDirectory>./</outputDirectory>
|
||||
<destName>pymma-kie-elytron.jar</destName>
|
||||
<destName>pymma-kie-login-module.jar</destName>
|
||||
</file>
|
||||
<file>
|
||||
<source>${project.build.directory}/bson.jar</source>
|
||||
|
|
@ -342,9 +357,9 @@
|
|||
<destName>kie-wb.war</destName>
|
||||
</file>
|
||||
<file>
|
||||
<source>${project.build.directory}/pymma-kie-elytron.jar</source>
|
||||
<source>${project.build.directory}/pymma-kie-login-module.jar</source>
|
||||
<outputDirectory>./</outputDirectory>
|
||||
<destName>pymma-kie-elytron.jar</destName>
|
||||
<destName>pymma-kie-login-module.jar</destName>
|
||||
</file>
|
||||
</files>
|
||||
</inline>
|
||||
|
|
|
|||
|
|
@ -1,39 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!--
|
||||
~ Copyright 2012 Red Hat, Inc. and/or its affiliates
|
||||
~
|
||||
~ 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.
|
||||
-->
|
||||
|
||||
<assembly xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2"
|
||||
xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2 http://maven.apache.org/xsd/assembly-1.1.2.xsd
|
||||
http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2 ">
|
||||
|
||||
<!-- including a . in the id will modify the *classifier* of the artifact, instead of the name/id of the artifact -->
|
||||
<id>ee7</id>
|
||||
<formats>
|
||||
<format>war</format>
|
||||
</formats>
|
||||
|
||||
<includeBaseDirectory>false</includeBaseDirectory>
|
||||
<fileSets>
|
||||
<fileSet>
|
||||
<directory>${project.build.directory}/unpack-tmp</directory>
|
||||
<outputDirectory>.</outputDirectory>
|
||||
</fileSet>
|
||||
|
||||
</fileSets>
|
||||
|
||||
|
||||
</assembly>
|
||||
|
|
@ -1,38 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!--
|
||||
~ Copyright 2016 Red Hat, Inc. and/or its affiliates.
|
||||
~
|
||||
~ 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.
|
||||
-->
|
||||
|
||||
<component xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/component/1.1.3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/component/1.1.3 http://maven.apache.org/xsd/component-1.1.3.xsd">
|
||||
<!-- Assembly configuration for WildFly 10 and EAP 7, shared between the community and product assemblies. -->
|
||||
<dependencySets>
|
||||
<dependencySet>
|
||||
<includes>
|
||||
<include>org.kie:${artifactId}:war</include>
|
||||
</includes>
|
||||
<outputDirectory>.</outputDirectory>
|
||||
<unpack>true</unpack>
|
||||
<unpackOptions>
|
||||
<excludes>
|
||||
<exclude>WEB-INF/classes/application-roles.properties</exclude>
|
||||
<exclude>WEB-INF/classes/application-users.properties</exclude>
|
||||
</excludes>
|
||||
</unpackOptions>
|
||||
<useStrictFiltering>true</useStrictFiltering>
|
||||
</dependencySet>
|
||||
</dependencySets>
|
||||
|
||||
</component>
|
||||
|
|
@ -27,10 +27,12 @@ ENV JAVA_OPTS -Xms256m -Xmx4512m
|
|||
##com.pymmasoftware.kie-realm
|
||||
RUN mkdir /opt/jboss/wildfly/modules/com
|
||||
RUN mkdir /opt/jboss/wildfly/modules/com/pymmasoftware
|
||||
RUN mkdir /opt/jboss/wildfly/modules/com/pymmasoftware/kie-realm
|
||||
RUN mkdir /opt/jboss/wildfly/modules/com/pymmasoftware/kie-realm/main
|
||||
ADD maven/pymma-kie-elytron.jar /opt/jboss/wildfly/modules/com/pymmasoftware/kie-realm/main/pymma-kie-elytron.jar
|
||||
ADD etc/module.xml /opt/jboss/wildfly/modules/com/pymmasoftware/kie-realm/main/module.xml
|
||||
RUN mkdir /opt/jboss/wildfly/modules/com/pymmasoftware/loginmodule
|
||||
RUN mkdir /opt/jboss/wildfly/modules/com/pymmasoftware/loginmodule/main
|
||||
ADD maven/pymma-kie-login-module.jar /opt/jboss/wildfly/modules/com/pymmasoftware/loginmodule/main/pymma-kie-login-module.jar
|
||||
ADD etc/module-loginmodule.xml /opt/jboss/wildfly/modules/com/pymmasoftware/loginmodule/main/module.xml
|
||||
|
||||
|
||||
|
||||
####### DROOLS-WB ############
|
||||
|
||||
|
|
|
|||
|
|
@ -1,16 +1,16 @@
|
|||
<?xml version='1.0' encoding='UTF-8'?>
|
||||
<module xmlns="urn:jboss:module:1.1" name="com.pymmasoftware.kie-realm">
|
||||
<module xmlns="urn:jboss:module:1.1" name="com.pymmasoftware.pymma-kie-loginmodule">
|
||||
|
||||
<resources>
|
||||
<resource-root path="pymma-kie-elytron.jar"/>
|
||||
<resource-root path="pymma-kie-loginmodule.jar"/>
|
||||
<resource-root path="bson.jar"/>
|
||||
<resource-root path="mongodb-driver-core.jar"/>
|
||||
<resource-root path="mongodb-driver.jar"/>
|
||||
</resources>
|
||||
|
||||
<dependencies>
|
||||
<module name="org.wildfly.security.elytron"/>
|
||||
<module name="org.wildfly.extension.elytron"/>
|
||||
<module name="org.picketbox"/>
|
||||
<module name="javax.api"/>
|
||||
</dependencies>
|
||||
|
||||
</module>
|
||||
|
|
@ -251,12 +251,6 @@
|
|||
</security-domain>
|
||||
</security-domains>
|
||||
<security-realms>
|
||||
<custom-realm name="pymmaKieRealm" module="com.pymmasoftware.kie-realm" class-name="org.chtijbug.wildfly.realm.PymmaKieRealm">
|
||||
<configuration>
|
||||
<property name="connectionString" value="mongodb://mongodb:27017"/>
|
||||
<property name="name" value="businessProxyDB"/>
|
||||
</configuration>
|
||||
</custom-realm>
|
||||
<identity-realm name="local" identity="$local"/>
|
||||
<properties-realm name="ApplicationRealm">
|
||||
<users-properties path="application-users.properties" relative-to="jboss.server.config.dir" digest-realm-name="ApplicationRealm"/>
|
||||
|
|
@ -457,11 +451,9 @@
|
|||
<security-domains>
|
||||
<security-domain name="other" cache-type="default">
|
||||
<authentication>
|
||||
<login-module code="Remoting" flag="optional">
|
||||
<module-option name="password-stacking" value="useFirstPass"/>
|
||||
</login-module>
|
||||
<login-module code="RealmDirect" flag="required">
|
||||
<module-option name="password-stacking" value="useFirstPass"/>
|
||||
<login-module code="org.chtijbug.wildfly.loginmodule.KiePlatformLoginModule" flag="required" module="com.pymmasoftware.pymma-kie-loginmodule">
|
||||
<module-option name="connectionString" value="mongodb://mongodb:27017"/>
|
||||
<module-option name="name" value="businessProxyDB"/>
|
||||
</login-module>
|
||||
</authentication>
|
||||
</security-domain>
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@
|
|||
</appender>
|
||||
|
||||
<root>
|
||||
<level value="INFO"/>
|
||||
<level value="DEBUG"/>
|
||||
<appender-ref ref="console"/>
|
||||
</root>
|
||||
|
||||
|
|
|
|||
|
|
@ -120,6 +120,28 @@
|
|||
<welcome-file>index.html</welcome-file>
|
||||
</welcome-file-list>
|
||||
|
||||
<!-- Basic Auth Filter for REST and Maven2 repo -->
|
||||
<filter>
|
||||
<filter-name>HTTP Basic Auth Filter</filter-name>
|
||||
<filter-class>org.uberfire.ext.security.server.BasicAuthSecurityFilter</filter-class>
|
||||
<init-param>
|
||||
<param-name>realmName</param-name>
|
||||
<param-value>Business Central Realm</param-value>
|
||||
</init-param>
|
||||
<init-param>
|
||||
<param-name>excludedPaths</param-name>
|
||||
<param-value>/rest/healthy,/rest/ready</param-value>
|
||||
</init-param>
|
||||
</filter>
|
||||
|
||||
<filter-mapping>
|
||||
<filter-name>HTTP Basic Auth Filter</filter-name>
|
||||
<url-pattern>/git/*</url-pattern>
|
||||
<url-pattern>/rest/*</url-pattern>
|
||||
<url-pattern>/maven2/*</url-pattern>
|
||||
<url-pattern>/ws/*</url-pattern>
|
||||
</filter-mapping>
|
||||
|
||||
<filter>
|
||||
<filter-name>GzipFilter</filter-name>
|
||||
<filter-class>org.uberfire.backend.server.util.gzip.GzipFilter</filter-class>
|
||||
|
|
@ -371,6 +393,17 @@ See http://www.w3.org/TR/SVG/intro.html#MIMEType. -->
|
|||
</auth-constraint>
|
||||
</security-constraint>
|
||||
|
||||
<!-- Basic auth for WebSocket endpoints -->
|
||||
<security-constraint>
|
||||
<web-resource-collection>
|
||||
<web-resource-name>WebSocket basic auth resources</web-resource-name>
|
||||
<url-pattern>/websocket/*</url-pattern>
|
||||
</web-resource-collection>
|
||||
<auth-constraint>
|
||||
<role-name>rest-all</role-name>
|
||||
</auth-constraint>
|
||||
</security-constraint>
|
||||
|
||||
<!-- public resources -->
|
||||
<security-constraint>
|
||||
<web-resource-collection>
|
||||
|
|
@ -460,6 +493,16 @@ See http://www.w3.org/TR/SVG/intro.html#MIMEType. -->
|
|||
<role-name>process-admin</role-name>
|
||||
</security-role>
|
||||
|
||||
<security-role>
|
||||
<description>REST user - Users with the rest-all role can access Business Central REST capabilities.</description>
|
||||
<role-name>rest-all</role-name>
|
||||
</security-role>
|
||||
|
||||
<security-role>
|
||||
<description>REST project - Users with the rest-project role can access Business Central REST capabilities.</description>
|
||||
<role-name>rest-project</role-name>
|
||||
</security-role>
|
||||
|
||||
<error-page>
|
||||
<error-code>403</error-code>
|
||||
<location>/not_authorized.jsp</location>
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@
|
|||
<module>kie-drools-framework-rest-backend</module>
|
||||
<module>drools-framework-kie-wb-rest-pojo</module>
|
||||
<module>drools-framework-uberfire-security-service</module>
|
||||
<module>drools-framework-elytron-realm</module>
|
||||
<module>drools-framework-wildfly-login-module</module>
|
||||
</modules>
|
||||
|
||||
<dependencyManagement>
|
||||
|
|
@ -28,7 +28,7 @@
|
|||
one of them, the ${project.version} property changes too and therefore also required version of
|
||||
uberfire-bom. Usage of this property makes it possible to change version of the (sub)module
|
||||
and still use the original version of uberfire-bom. -->
|
||||
<version>2.9.0.Final</version>
|
||||
<version>${jbpm.version}</version>
|
||||
<type>pom</type>
|
||||
<scope>import</scope>
|
||||
</dependency>
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@
|
|||
<modules>
|
||||
<module>drools-framework-common</module>
|
||||
<module>drools-framework-examples</module>
|
||||
<module>drools-framework-kie-server-parent</module>
|
||||
<!--module>drools-framework-kie-server-parent</module-->
|
||||
<module>drools-framework-runtime-base</module>
|
||||
<module>drools-framework-runtime-entity</module>
|
||||
<module>drools-framework-kie-wb-parent</module>
|
||||
|
|
|
|||
|
|
@ -97,8 +97,8 @@
|
|||
<orderEntry type="library" name="Maven: commons-io:commons-io:2.6" level="project" />
|
||||
<orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-databind:2.9.7" level="project" />
|
||||
<orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-core:2.9.7" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.kie:kie-internal:7.28.0.Final" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.kie:kie-api:7.28.0.Final" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.kie.soup:kie-soup-maven-support:7.28.0.Final" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.kie:kie-internal:7.31.0.Final" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.kie:kie-api:7.31.0.Final" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.kie.soup:kie-soup-maven-support:7.31.0.Final" level="project" />
|
||||
</component>
|
||||
</module>
|
||||
|
|
@ -95,8 +95,8 @@
|
|||
<orderEntry type="library" name="Maven: org.hamcrest:hamcrest-core:1.3" level="project" />
|
||||
<orderEntry type="library" name="Maven: com.google.guava:guava:13.0.1" level="project" />
|
||||
<orderEntry type="library" name="Maven: commons-io:commons-io:2.1" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.kie:kie-internal:7.28.0.Final" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.kie:kie-api:7.28.0.Final" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.kie.soup:kie-soup-maven-support:7.28.0.Final" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.kie:kie-internal:7.31.0.Final" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.kie:kie-api:7.31.0.Final" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.kie.soup:kie-soup-maven-support:7.31.0.Final" level="project" />
|
||||
</component>
|
||||
</module>
|
||||
|
|
@ -41,9 +41,9 @@
|
|||
<orderEntry type="library" name="Maven: com.google.guava:guava:13.0.1" level="project" />
|
||||
<orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-databind:2.9.7" level="project" />
|
||||
<orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-core:2.9.7" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.kie:kie-internal:7.28.0.Final" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.kie:kie-api:7.28.0.Final" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.kie.soup:kie-soup-maven-support:7.28.0.Final" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.kie:kie-internal:7.31.0.Final" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.kie:kie-api:7.31.0.Final" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.kie.soup:kie-soup-maven-support:7.31.0.Final" level="project" />
|
||||
<orderEntry type="library" name="Maven: com.github.mkopylec:charon-spring-boot-starter:3.1.0" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-web:2.1.0.RELEASE" level="project" />
|
||||
<orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter:2.1.0.RELEASE" level="project" />
|
||||
|
|
|
|||
|
|
@ -2,15 +2,15 @@ package org.chtijbug.drools.proxy.persistence.json;
|
|||
|
||||
import java.io.Serializable;
|
||||
|
||||
public class KeyProject implements Serializable {
|
||||
public class KieProject implements Serializable {
|
||||
|
||||
private String spaceName;
|
||||
|
||||
private String name;
|
||||
|
||||
public KeyProject(){}
|
||||
public KieProject(){}
|
||||
|
||||
public KeyProject(String spaceName, String name) {
|
||||
public KieProject(String spaceName, String name) {
|
||||
this.spaceName = spaceName;
|
||||
this.name = name;
|
||||
}
|
||||
|
|
@ -0,0 +1,44 @@
|
|||
package org.chtijbug.drools.proxy.persistence.model;
|
||||
|
||||
import org.springframework.data.annotation.Id;
|
||||
import org.springframework.data.mongodb.core.index.Indexed;
|
||||
import org.springframework.data.mongodb.core.mapping.DBRef;
|
||||
import org.springframework.data.mongodb.core.mapping.Document;
|
||||
|
||||
@Document
|
||||
public class Customer {
|
||||
|
||||
@Id
|
||||
@Indexed
|
||||
private String ID;
|
||||
|
||||
@Indexed(unique = true)
|
||||
private String name;
|
||||
|
||||
@DBRef
|
||||
private KieWorkbench kieWorkbench;
|
||||
|
||||
public String getID() {
|
||||
return ID;
|
||||
}
|
||||
|
||||
public void setID(String ID) {
|
||||
this.ID = ID;
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
public void setName(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
public KieWorkbench getKieWorkbench() {
|
||||
return kieWorkbench;
|
||||
}
|
||||
|
||||
public void setKieWorkbench(KieWorkbench kieWorkbench) {
|
||||
this.kieWorkbench = kieWorkbench;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,73 @@
|
|||
package org.chtijbug.drools.proxy.persistence.model;
|
||||
|
||||
|
||||
import org.springframework.data.annotation.Id;
|
||||
import org.springframework.data.mongodb.core.index.Indexed;
|
||||
import org.springframework.data.mongodb.core.mapping.Document;
|
||||
|
||||
@Document
|
||||
public class KieWorkbench {
|
||||
|
||||
@Id
|
||||
@Indexed
|
||||
private String ID;
|
||||
|
||||
@Indexed(unique = true)
|
||||
private String name;
|
||||
|
||||
private String internalUrl;
|
||||
|
||||
private String externalUrl;
|
||||
|
||||
private byte[] logo;
|
||||
|
||||
private String gitURL;
|
||||
|
||||
public String getID() {
|
||||
return ID;
|
||||
}
|
||||
|
||||
public void setID(String ID) {
|
||||
this.ID = ID;
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
public void setName(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
public byte[] getLogo() {
|
||||
return logo;
|
||||
}
|
||||
|
||||
public void setLogo(byte[] logo) {
|
||||
this.logo = logo;
|
||||
}
|
||||
|
||||
public String getInternalUrl() {
|
||||
return internalUrl;
|
||||
}
|
||||
|
||||
public void setInternalUrl(String internalUrl) {
|
||||
this.internalUrl = internalUrl;
|
||||
}
|
||||
|
||||
public String getExternalUrl() {
|
||||
return externalUrl;
|
||||
}
|
||||
|
||||
public void setExternalUrl(String externalUrl) {
|
||||
this.externalUrl = externalUrl;
|
||||
}
|
||||
|
||||
public String getGitURL() {
|
||||
return gitURL;
|
||||
}
|
||||
|
||||
public void setGitURL(String gitURL) {
|
||||
this.gitURL = gitURL;
|
||||
}
|
||||
}
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
package org.chtijbug.drools.proxy.persistence.model;
|
||||
|
||||
import org.chtijbug.drools.proxy.persistence.json.KeyProject;
|
||||
import org.chtijbug.drools.proxy.persistence.json.KieProject;
|
||||
import org.springframework.data.annotation.Id;
|
||||
import org.springframework.data.mongodb.core.index.Indexed;
|
||||
import org.springframework.data.mongodb.core.mapping.Document;
|
||||
|
|
@ -10,7 +10,7 @@ import java.util.ArrayList;
|
|||
import java.util.List;
|
||||
|
||||
@Document
|
||||
public class ProjectPersist implements Serializable {
|
||||
public class ProjectPersist implements Serializable {
|
||||
|
||||
public static final String ADEFINIR="A définir";
|
||||
|
||||
|
|
@ -23,7 +23,7 @@ public class ProjectPersist implements Serializable {
|
|||
|
||||
@Id
|
||||
@Indexed
|
||||
private KeyProject projectName;
|
||||
private KieProject projectName;
|
||||
|
||||
private String mainClass;
|
||||
|
||||
|
|
@ -45,7 +45,7 @@ public class ProjectPersist implements Serializable {
|
|||
|
||||
public ProjectPersist(){}
|
||||
|
||||
public ProjectPersist(String deploymentName, KeyProject projectName, String mainClass, String groupID, String artifactID, String processID, String projectVersion, String containerID, List<String> serverNames, String status) {
|
||||
public ProjectPersist(String deploymentName, KieProject projectName, String mainClass, String groupID, String artifactID, String processID, String projectVersion, String containerID, List<String> serverNames, String status) {
|
||||
this.deploymentName = deploymentName;
|
||||
this.projectName = projectName;
|
||||
this.mainClass = mainClass;
|
||||
|
|
@ -66,11 +66,11 @@ public class ProjectPersist implements Serializable {
|
|||
this.deploymentName = deploymentName;
|
||||
}
|
||||
|
||||
public KeyProject getProjectName() {
|
||||
public KieProject getProjectName() {
|
||||
return projectName;
|
||||
}
|
||||
|
||||
public void setProjectName(KeyProject projectName) {
|
||||
public void setProjectName(KieProject projectName) {
|
||||
this.projectName = projectName;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,101 @@
|
|||
package org.chtijbug.drools.proxy.persistence.model;
|
||||
|
||||
|
||||
import org.springframework.data.annotation.Id;
|
||||
import org.springframework.data.mongodb.core.index.Indexed;
|
||||
import org.springframework.data.mongodb.core.mapping.DBRef;
|
||||
import org.springframework.data.mongodb.core.mapping.Document;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
@Document
|
||||
public class User {
|
||||
|
||||
@Id
|
||||
@Indexed
|
||||
private String ID;
|
||||
|
||||
@Indexed(unique = true)
|
||||
private String login;
|
||||
|
||||
private String wbName;
|
||||
|
||||
private String password;
|
||||
|
||||
|
||||
|
||||
public User() {
|
||||
}
|
||||
|
||||
public User(String ID, String login, String password) {
|
||||
this.ID = ID;
|
||||
this.login = login;
|
||||
this.password = password;
|
||||
}
|
||||
|
||||
@DBRef
|
||||
private List<UserRoles> userRoles = new ArrayList<>();
|
||||
|
||||
@DBRef
|
||||
private List<UserGroups> userGroups = new ArrayList<>();
|
||||
|
||||
@DBRef
|
||||
private Customer customer;
|
||||
|
||||
public String getID() {
|
||||
return ID;
|
||||
}
|
||||
|
||||
public void setID(String ID) {
|
||||
this.ID = ID;
|
||||
}
|
||||
|
||||
public String getLogin() {
|
||||
return login;
|
||||
}
|
||||
|
||||
public void setLogin(String login) {
|
||||
this.login = login;
|
||||
}
|
||||
|
||||
public String getPassword() {
|
||||
return password;
|
||||
}
|
||||
|
||||
public void setPassword(String password) {
|
||||
this.password = password;
|
||||
}
|
||||
|
||||
public List<UserRoles> getUserRoles() {
|
||||
return userRoles;
|
||||
}
|
||||
|
||||
public void setUserRoles(List<UserRoles> userRoles) {
|
||||
this.userRoles = userRoles;
|
||||
}
|
||||
|
||||
public List<UserGroups> getUserGroups() {
|
||||
return userGroups;
|
||||
}
|
||||
|
||||
public void setUserGroups(List<UserGroups> userGroups) {
|
||||
this.userGroups = userGroups;
|
||||
}
|
||||
|
||||
public String getWbName() {
|
||||
return wbName;
|
||||
}
|
||||
|
||||
public void setWbName(String wbName) {
|
||||
this.wbName = wbName;
|
||||
}
|
||||
|
||||
public Customer getCustomer() {
|
||||
return customer;
|
||||
}
|
||||
|
||||
public void setCustomer(Customer customer) {
|
||||
this.customer = customer;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,61 @@
|
|||
package org.chtijbug.drools.proxy.persistence.model;
|
||||
|
||||
import org.springframework.data.annotation.Id;
|
||||
import org.springframework.data.mongodb.core.index.Indexed;
|
||||
import org.springframework.data.mongodb.core.mapping.Document;
|
||||
|
||||
@Document
|
||||
public class UserGroups {
|
||||
@Id
|
||||
@Indexed
|
||||
private String ID;
|
||||
@Indexed
|
||||
private String name;
|
||||
@Indexed
|
||||
private String spaceName;
|
||||
@Indexed
|
||||
private String projectName;
|
||||
|
||||
|
||||
|
||||
public UserGroups() {
|
||||
}
|
||||
|
||||
public UserGroups(String ID, String name) {
|
||||
this.ID = ID;
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
public String getID() {
|
||||
return ID;
|
||||
}
|
||||
|
||||
public void setID(String ID) {
|
||||
this.ID = ID;
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
public void setName(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
public String getSpaceName() {
|
||||
return spaceName;
|
||||
}
|
||||
|
||||
public void setSpaceName(String spaceName) {
|
||||
this.spaceName = spaceName;
|
||||
}
|
||||
|
||||
public String getProjectName() {
|
||||
return projectName;
|
||||
}
|
||||
|
||||
public void setProjectName(String projectName) {
|
||||
this.projectName = projectName;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,39 @@
|
|||
package org.chtijbug.drools.proxy.persistence.model;
|
||||
|
||||
import org.springframework.data.annotation.Id;
|
||||
import org.springframework.data.mongodb.core.index.Indexed;
|
||||
import org.springframework.data.mongodb.core.mapping.Document;
|
||||
|
||||
@Document
|
||||
public class UserRoles {
|
||||
|
||||
@Id
|
||||
@Indexed
|
||||
private String ID;
|
||||
@Indexed
|
||||
private String name;
|
||||
|
||||
public UserRoles() {
|
||||
}
|
||||
|
||||
public UserRoles(String ID, String name) {
|
||||
this.ID = ID;
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
public String getID() {
|
||||
return ID;
|
||||
}
|
||||
|
||||
public void setID(String ID) {
|
||||
this.ID = ID;
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
public void setName(String name) {
|
||||
this.name = name;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,12 @@
|
|||
package org.chtijbug.drools.proxy.persistence.repository;
|
||||
|
||||
import org.chtijbug.drools.proxy.persistence.model.Customer;
|
||||
import org.springframework.data.mongodb.repository.MongoRepository;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
@Repository
|
||||
public interface CustomerRepository extends MongoRepository<Customer, String> {
|
||||
|
||||
Customer findByName(String name);
|
||||
Customer findByID(String ID);
|
||||
}
|
||||
|
|
@ -0,0 +1,12 @@
|
|||
package org.chtijbug.drools.proxy.persistence.repository;
|
||||
|
||||
import org.chtijbug.drools.proxy.persistence.model.KieWorkbench;
|
||||
import org.springframework.data.mongodb.repository.MongoRepository;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
@Repository
|
||||
public interface KieWorkbenchRepository extends MongoRepository<KieWorkbench, String> {
|
||||
|
||||
KieWorkbench findByName(String name);
|
||||
KieWorkbench findByID(String ID);
|
||||
}
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
package org.chtijbug.drools.proxy.persistence.repository;
|
||||
|
||||
import org.chtijbug.drools.proxy.persistence.json.KeyProject;
|
||||
import org.chtijbug.drools.proxy.persistence.json.KieProject;
|
||||
import org.chtijbug.drools.proxy.persistence.model.ProjectPersist;
|
||||
import org.springframework.data.mongodb.repository.MongoRepository;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
|
@ -10,7 +10,7 @@ import java.util.List;
|
|||
@Repository
|
||||
public interface ProjectRepository extends MongoRepository<ProjectPersist, String> {
|
||||
|
||||
public ProjectPersist findByProjectName(KeyProject projectName);
|
||||
public ProjectPersist findByProjectName(KieProject projectName);
|
||||
public ProjectPersist findByDeploymentName(String deploymentName);
|
||||
public List<ProjectPersist> findByServerNamesIn(List<String> serverNames);
|
||||
public List<ProjectPersist> findByServerNamesInAndDeploymentName(List<String> serverNames,String deploymentName);
|
||||
|
|
|
|||
|
|
@ -0,0 +1,12 @@
|
|||
package org.chtijbug.drools.proxy.persistence.repository;
|
||||
|
||||
import org.chtijbug.drools.proxy.persistence.model.UserGroups;
|
||||
import org.springframework.data.mongodb.repository.MongoRepository;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
@Repository
|
||||
public interface UserGroupsRepository extends MongoRepository<UserGroups, String> {
|
||||
|
||||
UserGroups findByName(String login);
|
||||
UserGroups findByID(String login);
|
||||
}
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
package org.chtijbug.drools.proxy.persistence.repository;
|
||||
|
||||
import org.chtijbug.drools.proxy.persistence.model.User;
|
||||
import org.springframework.data.mongodb.repository.MongoRepository;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
@Repository
|
||||
public interface UserRepository extends MongoRepository<User, String> {
|
||||
|
||||
User findByLogin(String login);
|
||||
}
|
||||
|
|
@ -0,0 +1,12 @@
|
|||
package org.chtijbug.drools.proxy.persistence.repository;
|
||||
|
||||
import org.chtijbug.drools.proxy.persistence.model.UserRoles;
|
||||
import org.springframework.data.mongodb.repository.MongoRepository;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
@Repository
|
||||
public interface UserRolesRepository extends MongoRepository<UserRoles, String> {
|
||||
|
||||
UserRoles findByName(String login);
|
||||
UserRoles findByID(String login);
|
||||
}
|
||||
|
|
@ -1,139 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<parent>
|
||||
<artifactId>pymma-jbpm-platform-parent</artifactId>
|
||||
<groupId>com.pymmasoftware.jbpm</groupId>
|
||||
<version>1.1-SNAPSHOT</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<packaging>jar</packaging>
|
||||
<artifactId>keycloak-db</artifactId>
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>io.fabric8</groupId>
|
||||
<artifactId>docker-maven-plugin</artifactId>
|
||||
<version>0.28.0</version>
|
||||
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
<profiles>
|
||||
<profile>
|
||||
<id>docker-build</id>
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>io.fabric8</groupId>
|
||||
<artifactId>docker-maven-plugin</artifactId>
|
||||
<version>0.21.0</version>
|
||||
|
||||
<configuration>
|
||||
<dockerHost>${docker.Host}</dockerHost>
|
||||
|
||||
<verbose>true</verbose>
|
||||
<images>
|
||||
<image>
|
||||
<name>keycloak-db:${version.number}</name>
|
||||
<build>
|
||||
<dockerFileDir>${project.basedir}/src/main/docker</dockerFileDir>
|
||||
|
||||
|
||||
<tags>
|
||||
<tag>latest</tag>
|
||||
</tags>
|
||||
|
||||
</build>
|
||||
|
||||
<run>
|
||||
<extraHosts>
|
||||
<host>mongodb:192.168.43.94</host>
|
||||
<host>elasticsearchhost:192.168.43.94</host>
|
||||
</extraHosts>
|
||||
<ports>
|
||||
<port>6666:5432</port>
|
||||
</ports>
|
||||
</run>
|
||||
</image>
|
||||
</images>
|
||||
</configuration>
|
||||
|
||||
<executions>
|
||||
|
||||
<execution>
|
||||
<phase>package</phase>
|
||||
<goals>
|
||||
<goal>build</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
|
||||
|
||||
</executions>
|
||||
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
</profile>
|
||||
<profile>
|
||||
<id>docker-deploy</id>
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>io.fabric8</groupId>
|
||||
<artifactId>docker-maven-plugin</artifactId>
|
||||
<version>0.21.0</version>
|
||||
|
||||
<configuration>
|
||||
<registry>${registry.host}</registry>
|
||||
<dockerHost>${docker.Host}</dockerHost>
|
||||
<verbose>true</verbose>
|
||||
<images>
|
||||
<image>
|
||||
<name>keycloak-db:${version.number}</name>
|
||||
<build>
|
||||
<dockerFileDir>${project.basedir}/src/main/docker</dockerFileDir>
|
||||
|
||||
<!--copies Jar to the maven directory (uses Assembly system)-->
|
||||
<assembly>
|
||||
<descriptorRef>artifact</descriptorRef>
|
||||
</assembly>
|
||||
|
||||
</build>
|
||||
|
||||
<run>
|
||||
<extraHosts>
|
||||
<host>mongodb:192.168.1.100</host>
|
||||
</extraHosts>
|
||||
|
||||
</run>
|
||||
</image>
|
||||
</images>
|
||||
<authConfig>
|
||||
<username>nheron</username>
|
||||
<password>pymmalomme</password>
|
||||
</authConfig>
|
||||
<retries>5</retries>
|
||||
</configuration>
|
||||
|
||||
<executions>
|
||||
|
||||
|
||||
<execution>
|
||||
<id>mydeploy</id>
|
||||
<phase>deploy</phase>
|
||||
<goals>
|
||||
<goal>build</goal>
|
||||
<goal>push</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
|
||||
</executions>
|
||||
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
</profile>
|
||||
</profiles>
|
||||
</project>
|
||||
|
|
@ -1,4 +0,0 @@
|
|||
CREATE USER keycloak_user WITH PASSWORD 'keycloak_user';
|
||||
CREATE TABLESPACE keycloak_tablesplace owner keycloak_user location '/home/pgdata/keycloak';
|
||||
create database keycloakdb ENCODING = 'UTF8' TABLESPACE keycloak_tablesplace;
|
||||
GRANT ALL PRIVILEGES ON database keycloakdb to keycloak_user;
|
||||
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
|
|
@ -1,15 +0,0 @@
|
|||
FROM postgres:9.4
|
||||
RUN mkdir /home/pgdata
|
||||
RUN mkdir /home/pgdata/keycloak
|
||||
|
||||
RUN chown -R postgres: /home/pgdata
|
||||
|
||||
|
||||
VOLUME /home/pgdata
|
||||
RUN chown postgres: /home/pgdata
|
||||
ADD 01_init.sql /docker-entrypoint-initdb.d/
|
||||
ADD 02_Create_table.sql /docker-entrypoint-initdb.d/
|
||||
ADD 03_Create_table_content.sql /docker-entrypoint-initdb.d/
|
||||
|
||||
CMD ["postgres"]
|
||||
|
||||
5
pom.xml
5
pom.xml
|
|
@ -10,17 +10,14 @@
|
|||
<version>1.1-SNAPSHOT</version>
|
||||
<modules>
|
||||
<!--module>kie-wb-webapp</module-->
|
||||
|
||||
|
||||
<module>drools-framework-admin-console-parent</module>
|
||||
<module>drools-framework-business-proxy-parent</module>
|
||||
<module>drools-framework-base-tools-parent</module>
|
||||
<module>keycloak-db</module>
|
||||
</modules>
|
||||
<packaging>pom</packaging>
|
||||
|
||||
<properties>
|
||||
<jbpm.version>7.28.0.Final</jbpm.version>
|
||||
<jbpm.version>7.31.0.Final</jbpm.version>
|
||||
<node.version>v10.16.3</node.version>
|
||||
<npm.version>6.11.3</npm.version>
|
||||
<frontend-maven-plugin.version>1.8.0</frontend-maven-plugin.version>
|
||||
|
|
|
|||
Loading…
Add table
editor.link_modal.header
Reference in a new issue