Changeset 5506


Ignore:
Timestamp:
07/31/14 12:36:37 (10 years ago)
Author:
Twan Goosen
Message:

Moved loading of "admin database" into a separate service that can also be used outside the context of the wicket web app
Refs #589

Location:
VirtualCollectionRegistry/trunk/VirtualCollectionRegistry/src/main/java/eu/clarin/cmdi/virtualcollectionregistry
Files:
2 added
2 edited

Legend:

Unmodified
Added
Removed
  • VirtualCollectionRegistry/trunk/VirtualCollectionRegistry/src/main/java/eu/clarin/cmdi/virtualcollectionregistry/gui/Application.java

    r5504 r5506  
    11package eu.clarin.cmdi.virtualcollectionregistry.gui;
    22
     3import eu.clarin.cmdi.virtualcollectionregistry.AdminUsersService;
    34import eu.clarin.cmdi.virtualcollectionregistry.DataStore;
    45import eu.clarin.cmdi.virtualcollectionregistry.VirtualCollectionRegistry;
     
    1011import eu.clarin.cmdi.virtualcollectionregistry.gui.pages.LoginPage;
    1112import eu.clarin.cmdi.virtualcollectionregistry.gui.pages.VirtualCollectionDetailsPage;
    12 import java.io.BufferedReader;
    13 import java.io.FileInputStream;
    14 import java.io.IOException;
    15 import java.io.InputStreamReader;
    16 import java.util.HashSet;
    17 import java.util.Set;
    1813import org.apache.wicket.Page;
    1914import org.apache.wicket.authentication.AuthenticatedWebApplication;
     
    3934    @Autowired
    4035    private DataStore dataStore;
    41 
    42     private static final String CONFIG_PARAM_ADMINDB = "eu.clarin.cmdi.virtualcollectionregistry.admindb";
    43     private final Set<String> adminUsers = new HashSet<>();
     36    @Autowired
     37    private AdminUsersService adminUsersService;
    4438
    4539    @Override
    4640    protected void init() {
    4741        super.init();
     42        logger.info("Initialising VCR web application");
    4843        addComponentInstantiationListener(new SpringComponentInjector(this));
    4944
    50         String s = getServletContext().getInitParameter(CONFIG_PARAM_ADMINDB);
    51         if (s != null) {
    52             try {
    53                 loadAdminDatabase(s);
    54             } catch (IOException e) {
    55                 throw new RuntimeException("Could not load admin user database", e);
    56             }
    57         }
    58         if (adminUsers.isEmpty()) {
    59             logger.warn("No admin users have been defined");
    60         } else {
    61             logger.debug("Admin users: {}", adminUsers);
    62         }
    6345        getMarkupSettings().setDefaultMarkupEncoding("utf-8");
    6446        getRequestCycleSettings().setResponseRequestEncoding("utf-8");
     
    6749                new LeastRecentlyAccessedEvictionStrategy(3));
    6850        if (!DEPLOYMENT.equals(getConfigurationType())) {
     51            logger.warn("Web application configured for development");
    6952            getMarkupSettings().setStripWicketTags(true);
    7053            getMarkupSettings().setStripComments(true);
     
    11699        return false;
    117100    }
    118 
    119     public boolean isAdmin(String user) {
    120         return adminUsers.contains(user);
     101   
     102    boolean isAdmin(String user) {
     103        return adminUsersService.isAdmin(user);
    121104    }
    122 
    123     private void loadAdminDatabase(String filename) throws IOException {
    124         adminUsers.clear();
    125         try (BufferedReader reader = new BufferedReader(new InputStreamReader(
    126                 new FileInputStream(filename)))) {
    127             String line;
    128             while ((line = reader.readLine()) != null) {
    129                 line = line.trim();
    130                 if (line.isEmpty() || line.startsWith("#")) {
    131                     continue;
    132                 }
    133                 adminUsers.add(line);
    134             } // while
    135         }
    136     }
    137 
     105   
    138106    public VirtualCollectionRegistry getRegistry() {
    139107        return registry;
  • VirtualCollectionRegistry/trunk/VirtualCollectionRegistry/src/main/java/eu/clarin/cmdi/virtualcollectionregistry/gui/pages/BasePage.java

    r5505 r5506  
    11package eu.clarin.cmdi.virtualcollectionregistry.gui.pages;
    22
    3 import eu.clarin.cmdi.virtualcollectionregistry.gui.Application;
     3import eu.clarin.cmdi.virtualcollectionregistry.AdminUsersService;
    44import eu.clarin.cmdi.virtualcollectionregistry.gui.ApplicationSession;
    55import java.security.Principal;
     
    1111import org.apache.wicket.model.IModel;
    1212import org.apache.wicket.model.Model;
     13import org.apache.wicket.spring.injection.annot.SpringBean;
    1314
    1415public class BasePage extends WebPage {
     16   
     17    @SpringBean
     18    private AdminUsersService adminUsersService;
    1519
    1620    protected BasePage(IModel<?> model) {
     
    8690    protected boolean isUserAdmin() {
    8791        final String userName = getUser().getName();
    88         return userName != null && ((Application)getApplication()).isAdmin(userName);
     92        return userName != null && adminUsersService.isAdmin(userName);
    8993    }
    9094   
Note: See TracChangeset for help on using the changeset viewer.