JBoss Community

Re: JBPM 5.1 Final Release with jboss-5.1.0.GA embedded server - Users/Roles/Groups Management

created by priyakpandey in jBPM - View the full discussion

Thank you for your quick response !

 

If you look at DemoTaskService.java main method, it has following code before starting MinaTaskServer.

      // Add users

       Map vars = new HashMap();

        Reader reader = new InputStreamReader( BaseTest.class.getResourceAsStream( "LoadUsers.mvel" ) );    

        Map<String, User> users = ( Map<String, User> ) eval( reader, vars );  

        for ( User user : users.values() ) {

            taskSession.addUser( user );

        }          

        reader = new InputStreamReader( BaseTest.class.getResourceAsStream( "LoadGroups.mvel" ) );     

        Map<String, Group> groups = ( Map<String, Group> ) eval( reader, vars );    

        for ( Group group : groups.values() ) {

            taskSession.addGroup( group );

        }

 

What does it do with all users/groups loaded?

 

If you look at org.jbpm.integration.console.TaskManagement, after initializing TaskClient it has following,

try {

                              ClassLoader loader = Thread.currentThread().getContextClassLoader();

                              URL url = null;

                              String propertyName = "roles.properties";

 

 

                              if (loader instanceof URLClassLoader) {

                                        URLClassLoader ucl = (URLClassLoader) loader;

                                        url = ucl.findResource(propertyName);

                              }

                              if (url == null) {

                                        url = loader.getResource(propertyName);

                              }

                              if (url == null) {

                                        System.out.println("No properties file: " + propertyName + " found");

                              } else {

                                        Properties bundle = new Properties();

                                        InputStream is = url.openStream();

                                        if (is != null) {

                                                  bundle.load(is);

                                                  is.close();

                                        } else {

                                                  throw new IOException("Properties file " + propertyName          + " not available");

                                        }

                                        Enumeration<?> propertyNames = bundle.propertyNames();

                                        while (propertyNames.hasMoreElements()) {

                                                  String key = (String) propertyNames.nextElement();

                                                  String value = bundle.getProperty(key);

                                                  groupListMap.put(key, Arrays.asList(value.split(",")));

                                                  System.out.print("Loaded user " + key + ":");

                                                  for (String role: groupListMap.get(key)) {

                                                            System.out.print(" " + role);

                                                  }

                                                  System.out.println();

                                        }

                              }

                    } catch (Throwable t) {

                              t.printStackTrace();

                    }

 

which loads all the roles of all the users? It can be changed to load on demand for the particular user?

 

I am using Oracle but the user/group/roles gets loaded in the session all the time on startup.

Reply to this message by going to Community

Start a new discussion in jBPM at Community