Fabrice Bacchella
2015-05-26 3286926d2ec11445f76cd170e4c2fcff597a0754
Two slight improvement for custom UserService:
- try userRealm as a file only if class is not found, other exeptions are real error
- log userService only after setup, for better logging, as it can use gitblit.properties for custom .toString
1 files modified
6 ■■■■■ changed files
src/main/java/com/gitblit/manager/UserManager.java 6 ●●●●● patch | view | raw | blame | history
src/main/java/com/gitblit/manager/UserManager.java
@@ -83,9 +83,9 @@
     * @param userService
     */
    public void setUserService(IUserService userService) {
        logger.info(userService.toString());
        this.userService = userService;
        this.userService.setup(runtimeManager);
        logger.info(userService.toString());
    }
    @Override
@@ -115,10 +115,12 @@
                    // check to see if this "file" is a custom user service class
                    Class<?> realmClass = Class.forName(realm);
                    service = (IUserService) realmClass.newInstance();
                } catch (Throwable t) {
                } catch (ClassNotFoundException t) {
                    // typical file path configuration
                    File realmFile = runtimeManager.getFileOrFolder(Keys.realm.userService, "${baseFolder}/users.conf");
                    service = createUserService(realmFile);
                } catch (InstantiationException | IllegalAccessException  e) {
                    logger.error("failed to instanciate user service {}: {}", realm, e.getMessage());
                }
            }
            setUserService(service);