现在的位置: 首页 > 综合 > 正文

基于IBM TAM API开发统一身份认证模块

2013年09月25日 ⁄ 综合 ⁄ 共 3817字 ⁄ 字号 评论关闭
import javax.servlet.*;
import javax.servlet.http.*;
import java.util.*;
import java.io.*;
import java.net.URL;
import com.tivoli.pd.jutil.PDContext;
import com.tivoli.pd.jutil.PDMessage;
import com.tivoli.pd.jutil.PDMessages;
import com.tivoli.pd.jutil.PDRgyUserName;
import com.tivoli.pd.jutil.PDRgyGroupName;
import com.tivoli.pd.jutil.PDException;
import com.tivoli.pd.jadmin.*;
import com.tivoli.pd.nls.pdbjamsg;
import com.tivoli.mts.*;

public class AMServlet extends HttpServlet {
  //**
  //** init( ServletConfig config )
  //**
  public void init( ServletConfig config ) throws ServletException    {
    super.init( config );
  }

  //**
  //** destroy()
  //**
  public void destroy() {
    super.destroy();
  }

  //**
  //** doGet( HttpServletRequest req, HttpServletResponse resp )
  //**
  public void doGet( HttpServletRequest req, HttpServletResponse resp )
  throws ServletException, IOException {
    processRequest( req, resp );
  }

  //**
  //** doPost( HttpServletRequest req, HttpServletResponse resp )
  //**
  public void doPost( HttpServletRequest req, HttpServletResponse resp )
  throws ServletException, IOException {
    processRequest( req, resp );
  }

 
  //**
  //** processRequest( HttpServletRequest req, HttpServletResponse resp )
  //**
  public void processRequest( HttpServletRequest req, HttpServletResponse resp )
  throws ServletException, IOException {
    PrintWriter pw = resp.getWriter();
    pw.println( "<HTML>" );
    pw.println( " <BODY>" );
    try
    {
          PDMessages msgs = new PDMessages();
          String adminName = "sec_master";
        String adminPwd = "passw0rd";
          char [] adminPassword = adminPwd.toCharArray();
          String configURLStr = "file:///E:/WebSphere/AppServer/java/jre/PdPerm.properties";
          String rgySuffix = "dc=zk,dc=com";
          Locale locale = new Locale("ENGLISH", "US");
          URL configURL = new URL(configURLStr);
        
        pw.println("<H1>Tivoli Access Manager Admin API Example</H1>");
        pw.println("<H3>Creating a context...\n</H3>");
        pw.println("<BR>");
        PDContext ctxt = new PDContext (locale,adminName,adminPassword,configURL);

        pw.println("<H3>Listing the users...\n</H3>");
        pw.println("<BR>");
        ArrayList userList = PDUser.listUsers(ctxt,PDUser.PDUSER_ALLPATTERN,PDUser.PDUSER_MAXRETURN,false,msgs);
        pw.println(userList);
        pw.println("<BR>");

        pw.println("<H3>Showing the user sec_master...\n</H3>");
        pw.println("<BR>");
        String name="sec_master";
        PDUser pdUser = new PDUser(ctxt,name,msgs);
        pw.println("<H3>Account Valid: </H3>" + pdUser.isAccountValid());
        pw.println("<BR>");
        pw.println("<H3>Account Description: </H3>" + pdUser.getDescription());
        pw.println("<BR>");
        pw.println("<H3>Account Registry Name: </H3>" + pdUser.getRgyName());
        pw.println("<BR>");
        pw.println("<H3>Account ID: </H3>" + pdUser.getId());
        pw.println("<BR>");
        pw.println("<H3>Account First Name: </H3>" + pdUser.getFirstName());
        pw.println("<BR>");
        pw.println("<H3>Account Last Name: </H3>" + pdUser.getLastName());
        pw.println("<BR>");
        pw.println("<H3>Account Policy: </H3>" + pdUser.getPolicy());
        pw.println("<BR>");
        pw.println("<H3>Account Group: </H3>" + pdUser.getGroups());
        pw.println("<BR>");
        pw.println("<H3>Account PD User: </H3>" + pdUser.isPDUser());
        pw.println("<BR>");
        pw.println("<H3>Account SSO: </H3>" + pdUser.isSSOUser());
        pw.println("<BR>");

    }
    catch (PDException e){}
    catch (Exception e){}

      String _who="sec_master";
      String _object="/Management";
      String _pwd="passw0rd";
      String _perms="T";
    
    PDPrincipal whoIsIt = new PDPrincipal( _who , _pwd.toCharArray() );
    PDPermission whatTheyWant = new PDPermission( _object, _perms );
    boolean haveAccess = whoIsIt.implies(whatTheyWant);

    pw.println("<H1>Tivoli Access Manager Authorization API Example</H1>");
    pw.println( "[" + _who + ", " + _object + ", " + _perms + "] --> " );
    if (haveAccess)
        {pw.println( "Access is Granted: " );}
    else
        {pw.println( "Access is Denied: " );}

    pw.println( " </BODY>" );
    pw.println( "</HTML>" );
  }

}

抱歉!评论已关闭.