The actual HttpServletRequest interface does not have that method.  You
would probably need to cast it to your exact class before attempting to
access it.

-Scott

On 6/6/07, Adrien Futschik <[EMAIL PROTECTED]> wrote:

I am trying to modify CAS 3.0.7 and CAS-client-java 2.1.1 to exchange
password.

In CAS, I have created a new class called :

public class AdvancedPrincipal implements Principal {

    /** Unique ID for serialization. */
    private static final long serialVersionUID = 3977857758779396149L;

    /** User Id  */
    private final String id;

    /** Password  */
    private final String password;

    /**
     * Constructs the AdvancedPrincipal using the provided unique id and
password.
     *
     * @param id the identifier for the Principal
     * @param password the password for the Principal
     * @throws IllegalArgumentException if the id is null
     */
    public AdvancedPrincipal(final String id, final String password) {
        Assert.notNull(id, "id cannot be null");
        this.id = id;
        Assert.notNull(password, "password cannot be null");
        this.password = password;
    }

    public final String getId() {
        return this.id;
    }

    public final String getPassword() {
        return this.password;
    }

    public boolean equals(final Object o) {
        if (o == null || !this.getClass().equals(o.getClass())) {
            return false;
        }

        final AdvancedPrincipal p = (AdvancedPrincipal) o;

        return this.id.equals(p.getId());
    }

    public String toString() {
        return this.id + "|" + this.password;
    }

    public int hashCode() {
        return super.hashCode() ^ this.id.hashCode();
    }
}

An other one called :

public final class UsernameAndPasswordCredentialsToPrincipalResolver
implements
    CredentialsToPrincipalResolver {

    /** Logging instance. */
    private final Log log = LogFactory.getLog(getClass());

    /**
     * Constructs a AdvancedPrincipal from the username provided in the
     * credentials.
     *
     * @param credentials the Username and Password provided as
credentials.
     * @return an instance of the principal where the id is the username.
     */
    public Principal resolvePrincipal(final Credentials credentials) {
        final UsernamePasswordCredentials usernamePasswordCredentials =
(UsernamePasswordCredentials) credentials;

        if (log.isDebugEnabled()) {
            log.debug("Creating AdvancedPrincipal for ["
                + usernamePasswordCredentials.getUsername() + "]");
        }

        return new
AdvancedPrincipal(usernamePasswordCredentials.getUsername(),
usernamePasswordCredentials.getPassword());
    }

    /**
     * Return true if Credentials are UsernamePasswordCredentials, false
     * otherwise.
     */
    public boolean supports(final Credentials credentials) {
        return credentials != null
            && UsernamePasswordCredentials.class.isAssignableFrom
(credentials
                .getClass());
    }
}

I have declared in deployerConfigContext.xml :
<bean
class="
org.jasig.cas.authentication.principal.UsernameAndPasswordCredentialsToPrincipalResolver"
/>

instead of <bean

class="
org.jasig.cas.authentication.principal.UsernamePasswordCredentialsToPrincipalResolver"
/> ...

In Cas-client-java , I have added a method in CASFilterRequestWrapper.java
called getRemotePassword()

I also added this declaration in CASFilter.java
/** <p>Session attribute in which the password is stored.</p> */
    public final static String CAS_FILTER_PASSWORD
= "edu.yale.its.tp.cas.client.filter.password";

But when I am trying to use this method(getRemotePassword()) in my Jsp
page,
I am getting this error :
The method getRemotePassword() is undefined for the type
HttpServletRequest
26:                    <TR><TD><BR/></TD></TR>
27:                    <TR><TD align="left">Login&nbsp;:&nbsp;</TD>
28:                    <TD>
29:                      <html:text property="login" size="20"
maxlength="128"
value="<%=request.getRemotePassword()%>" />
30:                    </TD>
31:                    </TR>
32:                    <TR><TD><BR/></TD></TR>
....

Any ideas on how to make this work ??
--
Futschik Adrien
Atos Origin
Tour "Les Miroirs"
18, avenue d'Alsace
92296 Paris La Défense Cedex
FRANCE

Phone: +33 (0) 1 55 91 24 82

[EMAIL PROTECTED]
www.si.fr.atosorigin.com
_______________________________________________
Yale CAS mailing list
[email protected]
http://tp.its.yale.edu/mailman/listinfo/cas




--
-Scott Battaglia

LinkedIn: http://www.linkedin.com/in/scottbattaglia
_______________________________________________
Yale CAS mailing list
[email protected]
http://tp.its.yale.edu/mailman/listinfo/cas

Reply via email to