Interesting, here is my entire servlet:

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package edu.utah.acs.tek.casclient;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.URL;
import java.security.Principal;
import java.util.Enumeration;
import javax.servlet.ServletException;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.jasig.cas.client.util.AssertionHolder;
import org.jasig.cas.client.validation.Assertion;

/**
 *
 * @author dpbw
 */
public class casclient extends HttpServlet {

    /** 
     * Processes requests for both HTTP <code>GET</code> and <code>POST</code> 
methods.
     * @param request servlet request
     * @param response servlet response
     */
    protected void processRequest(HttpServletRequest request, 
HttpServletResponse response)
            throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");
        
        
        
        String ticketValue = (String)request.getParameter("ticket"); 
        
        URL url = new 
URL("https://testserver.acs.utah.edu:443/cas/validate?ticket="+ticketValue+"&service="+"https://othertestserver.acs.utah.edu/casringtest/casclient";);
            

        BufferedReader in = new BufferedReader(new 
InputStreamReader(url.openStream()));
        if (in==null){
            System.out.println("no url input stream");
        }
        else{
            String line1 = in.readLine();
            String line2 = in.readLine();
            System.out.println("line1; "+line1);
            System.out.println("line2: "+line2);
        }
        
        
        HttpSession session = request.getSession();
        
        System.out.println("remote user: " +request.getRemoteUser()); // ALWAYS 
RETURNS NULL

//        final Assertion assertion = 
(Assertion)session.getAttribute(AbstractCasFilter.CONST_CAS_ASSERTION);
        final Assertion assertion = AssertionHolder.getAssertion();

        if (assertion == null) {
            System.out.println("assertion null!"); //Always null, with or 
without Assertion filter?

        } else {
            final Principal p = assertion.getPrincipal();
            System.out.println("principal: " + p.getName());
        }

        Enumeration e = session.getAttributeNames();

        while (e.hasMoreElements()) {

            System.out.println("session attr"+(String) e.nextElement());
        }

        e = request.getAttributeNames();

        while (e.hasMoreElements()) {

            System.out.println("request attr"+(String) e.nextElement());
        }

       e = request.getParameterNames();

        while (e.hasMoreElements()) {

            System.out.println("request pram" +(String) e.nextElement()); // I 
get "ticket from the CAS Auth Filter
        }
        Cookie[] cookie = request.getCookies();
        if (cookie != null) {
            for (int i = 0; i < cookie.length; i++) {
                System.out.println("cookie name"+cookie[i].getName());
                System.out.println("cookie val"+cookie[i].getValue());
            }
        }
        
        e = request.getHeaderNames();

        while (e.hasMoreElements()) {
            String hdrName = (String) e.nextElement();
            System.out.println("header name"+hdrName);
            System.out.println("header value: "+request.getHeader(hdrName));
            
        }

        String unid = "0000000";
        if (assertion != null) {
            unid = (String) assertion.getPrincipal().getAttributes().get("uid");
        }
        PrintWriter out = response.getWriter();
        try {

            out.println("<html>");
            out.println("<head>");
            out.println("<title>Servlet casclient</title>");
            out.println("</head>");
            out.println("<body>");
            out.println("<h1>Servlet casclient at " + request.getContextPath() 
+ "</h1>");
            out.println("<h1>Unid " + unid + "</h1>");
            out.println("</body>");
            out.println("</html>");

        } finally {
            out.close();
        }
    }

    // <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click 
on the + sign on the left to edit the code.">
    /** 
     * Handles the HTTP <code>GET</code> method.
     * @param request servlet request
     * @param response servlet response
     */
    protected void doGet(HttpServletRequest request, HttpServletResponse 
response)
            throws ServletException, IOException {
        processRequest(request, response);
    }

    /** 
     * Handles the HTTP <code>POST</code> method.
     * @param request servlet request
     * @param response servlet response
     */
    protected void doPost(HttpServletRequest request, HttpServletResponse 
response)
            throws ServletException, IOException {
        processRequest(request, response);
    }

    /** 
     * Returns a short description of the servlet.
     */
    public String getServletInfo() {
        return "Short description";
    }// </editor-fold>
}


Here is my web.xml


<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd";>
    <filter>
        <filter-name>CAS Authentication Filter</filter-name>
        
<filter-class>org.jasig.cas.client.authentication.AuthenticationFilter</filter-class>
        <init-param>
            <param-name>casServerLoginUrl</param-name>
            <param-value>https://dev.acs.utah.edu:443/cas/login</param-value>
        </init-param>
        <init-param>
            <param-name>service</param-name>
            
<param-value>https://guide.acs.utah.edu:9932/casringtest/casclient</param-value>
        </init-param>
        <init-param>
            <param-name>serverName</param-name>
            <param-value>https://guide.acs.utah.edu:9932</param-value>
        </init-param>
        <init-param>
            <param-name>artifactParameterName</param-name>
            <param-value>ticket</param-value>
        </init-param>
        </filter>
 
  
  
    <filter>
        <filter-name>CAS Wrapper Filter</filter-name>
        
<filter-class>org.jasig.cas.client.util.HttpServletRequestWrapperFilter</filter-class>
    </filter>
    
    
  
    
    <filter-mapping>
        <filter-name>CAS Authentication Filter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
    
    <filter-mapping>
        <filter-name>CAS Wrapper Filter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
    <servlet>
        <servlet-name>casclient</servlet-name>
        <servlet-class>edu.utah.acs.tek.casclient.casclient</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>casclient</servlet-name>
        <url-pattern>/casclient</url-pattern>
    </servlet-mapping>
    <session-config>
        <session-timeout>
            30
        </session-timeout>
    </session-config>
    <welcome-file-list>
        <welcome-file>index.jsp</welcome-file>
    </welcome-file-list>

    
    
    
    </web-app>
-----Original Message-----
From: Marvin Addison [mailto:[email protected]] 
Sent: Friday, July 31, 2009 11:39 AM
To: [email protected]
Subject: Re: [cas-user] How do I get prinicpal from CASifyed client program?

> I have to assume that the Wrapper Filter is catching and eating all SSL 
> errors since my certs aren't trusted.

That is not the case.  Take a look at the source for that filter --
it's painfully simple.

SSL trust issues always show up at ticket validation time.  What's
likely is that your _application_ swallowed the error formerly and
ticket validation failed, so there was no CAS principal to inject into
the request, which would explain your getting null.

M

-- 
You are currently subscribed to [email protected] as: 
[email protected]
To unsubscribe, change settings or access archives, see 
http://www.ja-sig.org/wiki/display/JSG/cas-user

-- 
You are currently subscribed to [email protected] as: 
[email protected]
To unsubscribe, change settings or access archives, see 
http://www.ja-sig.org/wiki/display/JSG/cas-user

Reply via email to