Package org.sonatype.security.realms.tools

Source Code of org.sonatype.security.realms.tools.AbstractStaticSecurityResource

/*
* Sonatype Nexus (TM) Open Source Version
* Copyright (c) 2007-2014 Sonatype, Inc.
* All rights reserved. Includes the third-party code listed at http://links.sonatype.com/products/nexus/oss/attributions.
*
* This program and the accompanying materials are made available under the terms of the Eclipse Public License Version 1.0,
* which accompanies this distribution and is available at http://www.eclipse.org/legal/epl-v10.html.
*
* Sonatype Nexus (TM) Professional Version is available from Sonatype, Inc. "Sonatype" and "Sonatype Nexus" are trademarks
* of Sonatype, Inc. Apache Maven is a trademark of the Apache Software Foundation. M2eclipse is a trademark of the
* Eclipse Foundation. All other trademarks are the property of their respective owners.
*/
package org.sonatype.security.realms.tools;

import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.Reader;
import java.net.URL;

import org.sonatype.security.model.Configuration;
import org.sonatype.security.model.io.xpp3.SecurityConfigurationXpp3Reader;
import org.sonatype.sisu.goodies.common.ComponentSupport;

import org.codehaus.plexus.util.StringUtils;

import static com.google.common.base.Preconditions.checkState;

/**
* An abstract class that removes the boiler plate code of reading in the security configuration.
*
* @author Brian Demers
*/
public abstract class AbstractStaticSecurityResource
    extends ComponentSupport
    implements StaticSecurityResource
{
  protected boolean dirty = false;

  public boolean isDirty() {
    return dirty;
  }

  protected void setDirty(boolean dirty) {
    this.dirty = dirty;
  }

  protected abstract String getResourcePath();

  public Configuration getConfiguration() {
    String resourcePath = this.getResourcePath();

    if (StringUtils.isNotEmpty(resourcePath)) {
      URL url = getClass().getResource(resourcePath);
      checkState(url != null, "Missing static security configuration resource: %s", resourcePath);
      assert url != null;

      log.debug("Loading static security configuration: {}", url);
      try (InputStream is = url.openStream();
           Reader fr = new InputStreamReader(is)) {
        SecurityConfigurationXpp3Reader reader = new SecurityConfigurationXpp3Reader();
        return reader.read(fr);
      }
      catch (Exception e) {
        log.error("Failed to read configuration", e);
      }
    }

    // any other time just return null
    return null;
  }
}
TOP

Related Classes of org.sonatype.security.realms.tools.AbstractStaticSecurityResource

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.