You are viewing a plain text version of this content. The canonical link for it is here.
Posted to slide-dev@jakarta.apache.org by bu...@apache.org on 2004/09/01 00:48:07 UTC
DO NOT REPLY [Bug 30809] -
WebdavServlet uses non-serializable principal
DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://issues.apache.org/bugzilla/show_bug.cgi?id=30809>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND
INSERTED IN THE BUG DATABASE.
http://issues.apache.org/bugzilla/show_bug.cgi?id=30809
WebdavServlet uses non-serializable principal
------- Additional Comments From gblock@ctoforaday.com 2004-08-31 22:48 -------
An example fix:
Index: src/webdav/server/org/apache/slide/webdav/util/WebdavUtils.java
===============================================================
====
RCS file: /home/cvspublic/jakarta-slide/src/webdav/server/org/apache/slide/webdav/util/
WebdavUtils.java,v
retrieving revision 1.24
diff -r1.24 WebdavUtils.java
26a27
> import java.io.Serializable;
315c316,329
<
---
>
> private static class SlidePrincipal implements Principal, Serializable {
> private String name;
>
> public SlidePrincipal(String name) { this.name = name; }
> public String getName() { return this.name; }
> public String toString() { return this.name; }
> public int hashCode() { return (this.name!=null) ? this.name.hashCode() : 0; }
> public boolean equals(Object another) {
> if (!(another instanceof SlidePrincipal)) return false;
> else return (another.hashCode()==this.hashCode());
> }
> }
>
336c350,356
< session.setAttribute(PRINCIPAL_ATTRIBUTE, principal);
---
> try {
> session.setAttribute(PRINCIPAL_ATTRIBUTE, new SlidePrincipal(principal.getName()));
> } catch (IllegalArgumentException e) {
> IllegalArgumentException ex = new IllegalArgumentException("Attribute of class name
"+principal.getClass().getName()+" cannot be serialized.");
> ex.initCause(e);
> throw ex;
> }
---------------------------------------------------------------------
To unsubscribe, e-mail: slide-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: slide-dev-help@jakarta.apache.org