Geronimo
Now I develop some application for WebSphere Application Server Community Edition. Actualy WASCE is
Geronimo Application server that was changed by IBM guys. One of my main task was to make jakarta-slide application work on WASCE. And I got a lot of problems with it.
First problem I met, was geronimo web.xml handling. Jetspeed has clear header in the begining of web.xml
<!DOCTYPE web-app PUBLIC
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">
So it shoud be validated with http://java.sun.com/dtd/web-app_2_3.dtd, but Geronimo complitly ignores this header and always uses XSD file from 2.4 servlets specification verison. So it was necessary to make some changes in slide web.xml file to make it work on Geronimo.
After makeing some changes in slide web.xml slide was successfuly started on my WASCE. But when I tried to enable security I got more problems. First of all http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd does not allow to set security contraints for HTTP-Methods except standard HTTP-methods like POST and GET. But jakarta-slide is WebDAV implementation and WebDAV is HTTP-extension so it uses some not standard HTTP-methods. To solve this problem I just commented this part of web.xml out. And then I got this
15:43:58,132 ERROR [CoyoteAdapter] An exception or error occurred in the container during the request processing
java.lang.IllegalArgumentException: Invalid HTTPMethodSpec
at javax.security.jacc.HTTPMethodSpec.(HTTPMethodSpec.java:114)
at javax.security.jacc.WebUserDataPermission.(WebUserDataPermission.java:84)
at org.apache.geronimo.tomcat.realm.TomcatGeronimoRealm.hasUserDataPermission(TomcatGeronimoRealm.java:123)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:428)
at org.apache.geronimo.tomcat.GeronimoStandardContext$SystemMethodValve.invoke(GeronimoStandardContext.java:262)
at org.apache.geronimo.tomcat.valve.PolicyContextValve.invoke(PolicyContextValve.java:50)
....
So Geronimo Login Module checking my HTTP request for correctness and when hi finds some not standard HTTP-method it just throws this exception. I spend a lot of time tring to configure WASCE to use another classes for Login module, but did not succeed. Solution was to servlet security filter similar to this one Security Filter instad of using J2EE authorethation. It not realy good workaround, still it works.
Geronimo Application server that was changed by IBM guys. One of my main task was to make jakarta-slide application work on WASCE. And I got a lot of problems with it.
First problem I met, was geronimo web.xml handling. Jetspeed has clear header in the begining of web.xml
<!DOCTYPE web-app PUBLIC
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">
So it shoud be validated with http://java.sun.com/dtd/web-app_2_3.dtd, but Geronimo complitly ignores this header and always uses XSD file from 2.4 servlets specification verison. So it was necessary to make some changes in slide web.xml file to make it work on Geronimo.
After makeing some changes in slide web.xml slide was successfuly started on my WASCE. But when I tried to enable security I got more problems. First of all http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd does not allow to set security contraints for HTTP-Methods except standard HTTP-methods like POST and GET. But jakarta-slide is WebDAV implementation and WebDAV is HTTP-extension so it uses some not standard HTTP-methods. To solve this problem I just commented this part of web.xml out. And then I got this
15:43:58,132 ERROR [CoyoteAdapter] An exception or error occurred in the container during the request processing
java.lang.IllegalArgumentException: Invalid HTTPMethodSpec
at javax.security.jacc.HTTPMethodSpec.
at javax.security.jacc.WebUserDataPermission.
at org.apache.geronimo.tomcat.realm.TomcatGeronimoRealm.hasUserDataPermission(TomcatGeronimoRealm.java:123)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:428)
at org.apache.geronimo.tomcat.GeronimoStandardContext$SystemMethodValve.invoke(GeronimoStandardContext.java:262)
at org.apache.geronimo.tomcat.valve.PolicyContextValve.invoke(PolicyContextValve.java:50)
....
So Geronimo Login Module checking my HTTP request for correctness and when hi finds some not standard HTTP-method it just throws this exception. I spend a lot of time tring to configure WASCE to use another classes for Login module, but did not succeed. Solution was to servlet security filter similar to this one Security Filter instad of using J2EE authorethation. It not realy good workaround, still it works.

0 Comments:
Post a Comment
<< Home