Package edu.zzuli.common.security

Source Code of edu.zzuli.common.security.DBFilterInvocationDefinitionSource

package edu.zzuli.common.security;

import java.util.Iterator;

import org.acegisecurity.Authentication;
import org.acegisecurity.ConfigAttributeDefinition;
import org.acegisecurity.context.SecurityContextHolder;
import org.acegisecurity.intercept.web.AbstractFilterInvocationDefinitionSource;

public class DBFilterInvocationDefinitionSource extends AbstractFilterInvocationDefinitionSource {

  @SuppressWarnings("unused")
  private boolean CONVERT_URL_TO_LOWERCASE_BEFORE_COMPARISON;

  private DBUrlSourceManager dbUrlSourceManager;

  private boolean showRequestUrl;
 
  private boolean showProtectedResource;

  public void setCONVERT_URL_TO_LOWERCASE_BEFORE_COMPARISON(boolean CONVERT_URL_TO_LOWERCASE_BEFORE_COMPARISON) {
    this.CONVERT_URL_TO_LOWERCASE_BEFORE_COMPARISON = CONVERT_URL_TO_LOWERCASE_BEFORE_COMPARISON;
  }

  public void setDbUrlSourceManager(DBUrlSourceManager dbUrlSourceManager) {
    this.dbUrlSourceManager = dbUrlSourceManager;
  }

  public void setShowRequestUrl(boolean showRequestUrl) {
    this.showRequestUrl = showRequestUrl;
  }
  public void setShowProtectedResource(boolean showProtectedResource) {
    this.showProtectedResource = showProtectedResource;
  }

  public ConfigAttributeDefinition lookupAttributes(String url) {
    if (showProtectedResource)
      System.out.println("[DBFilterInvocationDefinitionSource]Protected Resource-->"+this.dbUrlSourceManager.getUrlMap());
    if (showRequestUrl)
      System.out.println("[DBFilterInvocationDefinitionSource]Request URL-->" + url);
    String url_C = url;
    if (url.indexOf("/") == 0) {  // 数据库中的功能地址不能以“/”开头
      url_C = url_C.substring(1);
    }
    url_C = this.dbUrlSourceManager.convertUrl(url_C);
    if (showProtectedResource) {
      Authentication au = SecurityContextHolder.getContext().getAuthentication();
      if (au != null) {
        System.out.println("acegi_au:au.getName()=" + au.getName());
        System.out.println("acegi_au:au.getAuthorities().length=" + au.getAuthorities().length);
        for (int i = 0; i < au.getAuthorities().length; i++) {
          System.out.println("acegi_au:au.getAuthorities()[" + i + "].getAuthority()=" + au.getAuthorities()[i].getAuthority());
        }
        System.out.println("acegi_au:(String)au.getCredentials()=" + (String) au.getCredentials());
        System.out.println("acegi_au:au.getDetails()[org.acegisecurity.ui.WebAuthenticationDetails]=" + au.getDetails().toString());
        System.out.println("acegi_au:au.getPrincipal()[org.acegisecurity.userdetails.User]=" + au.getPrincipal());
      }
    }
    return (ConfigAttributeDefinition) this.dbUrlSourceManager.getUrlMap().get(url_C);
  }

  public Iterator getConfigAttributeDefinitions() {
    return this.dbUrlSourceManager.getUrlMap().values().iterator();
  }

}
TOP

Related Classes of edu.zzuli.common.security.DBFilterInvocationDefinitionSource

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.