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