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>" );
}
}