[jboss-svn-commits] JBL Code SVN: r6870 - in labs/jbosslabs/trunk/portal-extensions: configuration/to-copy/server/all/deploy/jboss-portal.sar/portal-server.war/WEB-INF forge-common forge-common/src/java/org/jboss/forge/common forge-common/src/java/org/jboss/forge/common/propertypersistance forge-common/src/java/org/jboss/forge/common/propertypersistance/ejb3 forge-common/src/java/org/jboss/forge/common/soa forge-login forge-login/src/java/org/jboss/labs/login forge-login-portlet/src/java/org/jbosslabs/security/filter forge-login-portlet/src/java/org/jbosslabs/security/portlet forge-login-portlet/src/web/WEB-INF forge-portal-attr/src/java/org/jboss/forge/portal jbosswiki/wiki-common/src/java/org/jboss/wiki jbosswiki/wiki-management/src/java/org/jboss/wiki
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Tue Oct 17 16:53:55 EDT 2006
Author: szimano
Date: 2006-10-17 16:53:19 -0400 (Tue, 17 Oct 2006)
New Revision: 6870
Added:
labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/propertypersistance/
labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/propertypersistance/PropertyService.java
labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/propertypersistance/ejb3/
labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/propertypersistance/ejb3/LabsPropertyEntity.java
labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/propertypersistance/ejb3/PropertyServiceBean.java
labs/jbosslabs/trunk/portal-extensions/forge-portal-attr/src/java/org/jboss/forge/portal/AutologinFilter.java
labs/jbosslabs/trunk/portal-extensions/forge-portal-attr/src/java/org/jboss/forge/portal/LoginServlet.java
labs/jbosslabs/trunk/portal-extensions/forge-portal-attr/src/java/org/jboss/forge/portal/PerformLoginFilter.java
labs/jbosslabs/trunk/portal-extensions/forge-portal-attr/src/java/org/jboss/forge/portal/ShowLoginPageServlet.java
Modified:
labs/jbosslabs/trunk/portal-extensions/configuration/to-copy/server/all/deploy/jboss-portal.sar/portal-server.war/WEB-INF/web.xml
labs/jbosslabs/trunk/portal-extensions/forge-common/maven.xml
labs/jbosslabs/trunk/portal-extensions/forge-common/project.properties
labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/soa/LabsServices.java
labs/jbosslabs/trunk/portal-extensions/forge-login-portlet/src/java/org/jbosslabs/security/filter/Login.java
labs/jbosslabs/trunk/portal-extensions/forge-login-portlet/src/java/org/jbosslabs/security/portlet/Login.java
labs/jbosslabs/trunk/portal-extensions/forge-login-portlet/src/web/WEB-INF/web.xml
labs/jbosslabs/trunk/portal-extensions/forge-login/maven.xml
labs/jbosslabs/trunk/portal-extensions/forge-login/project.properties
labs/jbosslabs/trunk/portal-extensions/forge-login/project.xml
labs/jbosslabs/trunk/portal-extensions/forge-login/src/java/org/jboss/labs/login/LabsLoginModule.java
labs/jbosslabs/trunk/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/InsidePluginExcecutor.java
labs/jbosslabs/trunk/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/WikiEngine.java
labs/jbosslabs/trunk/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/WikiType.java
labs/jbosslabs/trunk/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/WikiTypeLoader.java
labs/jbosslabs/trunk/portal-extensions/jbosswiki/wiki-management/src/java/org/jboss/wiki/EMailNotifierSLSB.java
Log:
Autologin feature JBLAB-764
class.forName to ...loadClass in jbosswiki
Modified: labs/jbosslabs/trunk/portal-extensions/configuration/to-copy/server/all/deploy/jboss-portal.sar/portal-server.war/WEB-INF/web.xml
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/configuration/to-copy/server/all/deploy/jboss-portal.sar/portal-server.war/WEB-INF/web.xml 2006-10-17 19:55:03 UTC (rev 6869)
+++ labs/jbosslabs/trunk/portal-extensions/configuration/to-copy/server/all/deploy/jboss-portal.sar/portal-server.war/WEB-INF/web.xml 2006-10-17 20:53:19 UTC (rev 6870)
@@ -8,7 +8,32 @@
<distributable/>
-->
- !-- LABS FILTERS -->
+ <!-- LABS FILTERS -->
+ <servlet>
+ <servlet-name>loginServlet</servlet-name>
+ <servlet-class>org.jboss.forge.portal.LoginServlet</servlet-class>
+ </servlet>
+
+ <servlet-mapping>
+ <servlet-name>loginServlet</servlet-name>
+ <url-pattern>/loginAction</url-pattern>
+ </servlet-mapping>
+
+ <servlet>
+ <servlet-name>ShowLoginPage</servlet-name>
+ <servlet-class>org.jboss.forge.portal.ShowLoginPageServlet</servlet-class>
+ </servlet>
+
+ <servlet-mapping>
+ <servlet-name>ShowLoginPage</servlet-name>
+ <url-pattern>/showLogin</url-pattern>
+ </servlet-mapping>
+
+ <servlet-mapping>
+ <servlet-name>ShowLoginPage</servlet-name>
+ <url-pattern>/logout</url-pattern>
+ </servlet-mapping>
+
<filter>
<filter-name>titleAndTimestampFilter</filter-name>
<filter-class>org.jboss.forge.portal.TitleChangeFilter</filter-class>
@@ -18,7 +43,17 @@
<filter-name>titleAndTimestampFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
+
+ <filter>
+ <filter-name>autologinFilter</filter-name>
+ <filter-class>org.jboss.forge.portal.AutologinFilter</filter-class>
+ </filter>
+ <filter-mapping>
+ <filter-name>autologinFilter</filter-name>
+ <url-pattern>/*</url-pattern>
+ </filter-mapping>
+
<filter>
<filter-name>moveMeta</filter-name>
<filter-class>org.jboss.forge.portal.MetaMoveFilter</filter-class>
@@ -223,7 +258,7 @@
<auth-method>FORM</auth-method>
<realm-name>JBoss Portal</realm-name>
<form-login-config>
- <form-login-page>/login</form-login-page>
+ <form-login-page>/showLogin</form-login-page>
<form-error-page>/portal/auth/portal/default/login/LoginWindow?action=1&action=loginFailed</form-error-page>
</form-login-config>
</login-config>
Modified: labs/jbosslabs/trunk/portal-extensions/forge-common/maven.xml
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-common/maven.xml 2006-10-17 19:55:03 UTC (rev 6869)
+++ labs/jbosslabs/trunk/portal-extensions/forge-common/maven.xml 2006-10-17 20:53:19 UTC (rev 6870)
@@ -13,6 +13,8 @@
</goal>
<goal name="build">
+ <attainGoal name="ejb" />
+ <ant:copy file="target/${maven.final.name}.jar" toFile="target/${maven.final.name}.ejb3" />
<attainGoal name="jar" />
</goal>
@@ -22,5 +24,10 @@
<ant:filename name="target/*.jar" />
</ant:fileset>
</ant:copy>
+ <ant:copy todir="${local.deploy.dir}" flatten="true">
+ <ant:fileset dir=".">
+ <ant:filename name="target/*.ejb3" />
+ </ant:fileset>
+ </ant:copy>
</goal>
</project>
Modified: labs/jbosslabs/trunk/portal-extensions/forge-common/project.properties
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-common/project.properties 2006-10-17 19:55:03 UTC (rev 6869)
+++ labs/jbosslabs/trunk/portal-extensions/forge-common/project.properties 2006-10-17 20:53:19 UTC (rev 6870)
@@ -1,3 +1,5 @@
maven.repo.remote=http://repository.atlassian.com,http://www.ibiblio.org/maven,http://dist.codehaus.org/
maven.junit.fork=yes
maven.war.src=${basedir}/src/web
+maven.ejb.includes=**/ejb3/*.class,**/propertypersistance/PropertyService.class
+maven.jar.excludes=**/ejb3/*.class
Added: labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/propertypersistance/PropertyService.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/propertypersistance/PropertyService.java 2006-10-17 19:55:03 UTC (rev 6869)
+++ labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/propertypersistance/PropertyService.java 2006-10-17 20:53:19 UTC (rev 6870)
@@ -0,0 +1,9 @@
+package org.jboss.forge.common.propertypersistance;
+
+public interface PropertyService {
+ public void setProperty(String id, String key, String value);
+
+ public String getProperty(String id, String key);
+
+ public void removeProperty(String id, String key);
+}
Added: labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/propertypersistance/ejb3/LabsPropertyEntity.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/propertypersistance/ejb3/LabsPropertyEntity.java 2006-10-17 19:55:03 UTC (rev 6869)
+++ labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/propertypersistance/ejb3/LabsPropertyEntity.java 2006-10-17 20:53:19 UTC (rev 6870)
@@ -0,0 +1,33 @@
+package org.jboss.forge.common.propertypersistance.ejb3;
+
+import javax.persistence.Entity;
+import javax.persistence.Id;
+import javax.persistence.Table;
+
+ at Entity
+ at Table(name = "jblab_properties")
+public class LabsPropertyEntity {
+
+ private String propKey;
+
+ private String propValue;
+
+ @Id
+ public String getPropKey() {
+ return propKey;
+ }
+
+ public void setPropKey(String propKey) {
+ this.propKey = propKey;
+ }
+
+ public String getPropValue() {
+ return propValue;
+ }
+
+ public void setPropValue(String propValue) {
+ this.propValue = propValue;
+ }
+
+
+}
Added: labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/propertypersistance/ejb3/PropertyServiceBean.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/propertypersistance/ejb3/PropertyServiceBean.java 2006-10-17 19:55:03 UTC (rev 6869)
+++ labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/propertypersistance/ejb3/PropertyServiceBean.java 2006-10-17 20:53:19 UTC (rev 6870)
@@ -0,0 +1,47 @@
+package org.jboss.forge.common.propertypersistance.ejb3;
+
+import javax.ejb.Stateless;
+import javax.persistence.EntityManager;
+import javax.persistence.PersistenceContext;
+
+import org.jboss.forge.common.propertypersistance.PropertyService;
+
+ at Stateless
+public class PropertyServiceBean implements PropertyService {
+
+ @PersistenceContext(unitName = "property_persistance")
+ protected EntityManager manager;
+
+ public String getProperty(String id, String key) {
+ LabsPropertyEntity entity = manager.find(LabsPropertyEntity.class, id
+ + key);
+
+ if (entity != null) {
+ return entity.getPropValue();
+ } else
+ return null;
+ }
+
+ public void removeProperty(String id, String key) {
+ LabsPropertyEntity entity = manager.find(LabsPropertyEntity.class, id
+ + key);
+
+ if (entity != null) {
+ manager.remove(entity);
+ }
+ }
+
+ public void setProperty(String id, String key, String value) {
+ LabsPropertyEntity entity = manager.find(LabsPropertyEntity.class, id
+ + key);
+
+ if (entity == null)
+ entity = new LabsPropertyEntity();
+
+ entity.setPropKey(id + key);
+ entity.setPropValue(value);
+
+ manager.persist(entity);
+ }
+
+}
Modified: labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/soa/LabsServices.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/soa/LabsServices.java 2006-10-17 19:55:03 UTC (rev 6869)
+++ labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/soa/LabsServices.java 2006-10-17 20:53:19 UTC (rev 6870)
@@ -23,7 +23,10 @@
package org.jboss.forge.common.soa;
import javax.management.MalformedObjectNameException;
+import javax.naming.InitialContext;
+import javax.naming.NamingException;
+import org.jboss.forge.common.propertypersistance.PropertyService;
import org.jboss.forge.common.soa.primates.PrimatesService;
import org.jboss.mx.util.MBeanProxyExt;
import org.jboss.mx.util.MBeanServerLocator;
@@ -33,10 +36,18 @@
*/
public class LabsServices {
+
+ private static final String PROP_SERVICE = "PropertyServiceBean/local";
+
public static PrimatesService getPrimatesService()
throws MalformedObjectNameException {
return (PrimatesService) MBeanProxyExt.create(PrimatesService.class,
PrimatesService.PRIMATES_SERVICE, MBeanServerLocator.locate());
}
+
+ public static PropertyService getPropertyService() throws NamingException {
+ return (PropertyService)(new InitialContext()).lookup(PROP_SERVICE);
+ }
+
}
Modified: labs/jbosslabs/trunk/portal-extensions/forge-login/maven.xml
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-login/maven.xml 2006-10-17 19:55:03 UTC (rev 6869)
+++ labs/jbosslabs/trunk/portal-extensions/forge-login/maven.xml 2006-10-17 20:53:19 UTC (rev 6870)
@@ -12,7 +12,7 @@
<goal name="clean">
<attainGoal name="prj-clean" />
</goal>
-
+
<goal name="build">
<attainGoal name="jar" />
</goal>
Modified: labs/jbosslabs/trunk/portal-extensions/forge-login/project.properties
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-login/project.properties 2006-10-17 19:55:03 UTC (rev 6869)
+++ labs/jbosslabs/trunk/portal-extensions/forge-login/project.properties 2006-10-17 20:53:19 UTC (rev 6870)
@@ -1,3 +1,5 @@
maven.repo.remote=http://repository.atlassian.com,http://www.ibiblio.org/maven,http://dist.codehaus.org/
maven.junit.fork=yes
maven.war.src=${basedir}/src/web
+maven.ejb.includes=**/ejb3/*.class,**/autologin/LoginMemoryService.class
+maven.jar.excludes=**/ejb3/*.class
Modified: labs/jbosslabs/trunk/portal-extensions/forge-login/project.xml
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-login/project.xml 2006-10-17 19:55:03 UTC (rev 6869)
+++ labs/jbosslabs/trunk/portal-extensions/forge-login/project.xml 2006-10-17 20:53:19 UTC (rev 6870)
@@ -50,6 +50,27 @@
<artifactId>forge-common</artifactId>
<version>1.0</version>
</dependency>
+
+ <dependency>
+ <groupId>jboss</groupId>
+ <artifactId>ejb3-persistence</artifactId>
+ <version>3.0RC6</version>
+ <jar>ejb3-persistence.jar</jar>
+ </dependency>
+ <dependency>
+ <groupId>jboss</groupId>
+ <artifactId>jboss-ejb3x</artifactId>
+ <version>3.0RC6</version>
+ <jar>jboss-ejb3x.jar</jar>
+ </dependency>
+
+ <dependency>
+ <groupId>jboss</groupId>
+ <artifactId>jboss-annotations-ejb3</artifactId>
+ <version>1.0</version>
+ <jar>jboss-annotations-ejb3.jar</jar>
+ </dependency>
+
</dependencies>
</project>
Modified: labs/jbosslabs/trunk/portal-extensions/forge-login/src/java/org/jboss/labs/login/LabsLoginModule.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-login/src/java/org/jboss/labs/login/LabsLoginModule.java 2006-10-17 19:55:03 UTC (rev 6869)
+++ labs/jbosslabs/trunk/portal-extensions/forge-login/src/java/org/jboss/labs/login/LabsLoginModule.java 2006-10-17 20:53:19 UTC (rev 6870)
@@ -41,6 +41,8 @@
import javax.transaction.TransactionManager;
import org.jboss.forge.common.PermissionTools;
+import org.jboss.forge.common.propertypersistance.PropertyService;
+import org.jboss.forge.common.soa.LabsServices;
import org.jboss.portal.common.transaction.Transactions;
import org.jboss.portal.core.modules.ModuleConstants;
import org.jboss.portal.core.modules.ModuleException;
@@ -68,6 +70,12 @@
protected String jbossDB;
+ private static final String PASS_TOKEN = "AutoLoginToken.";
+
+ private static final String TOKENIZER = "<!AutoLoginTokenizer!>";
+
+ private static final String AUTLOGIN_PASSWORD = "Autologin:password";
+
public void initialize(Subject subject, CallbackHandler callbackHandler,
Map sharedState, Map options) {
super.initialize(subject, callbackHandler, sharedState, options);
@@ -97,46 +105,73 @@
return userModule;
}
- protected boolean validatePassword(String inputPassword, String expectedPassword) {
+ protected boolean validatePassword(String inputPassword,
+ String expectedPassword) {
final String inPassword = inputPassword;
-
+
try {
TransactionManager tm = (TransactionManager) new InitialContext()
.lookup("java:/TransactionManager");
- Boolean passwordValid = (Boolean) Transactions.required(tm,
- new Transactions.Runnable() {
- public Object run() throws Exception {
- try {
- UserModule module = getUserModule();
+ Boolean passwordValid;
+
+ if (inputPassword.startsWith(PASS_TOKEN)) {
+
+ log.info("Perforiming autologin");
+
+ String password = inputPassword.substring(PASS_TOKEN.length());
+ String[] tokens = password.split(TOKENIZER);
+ String ip = tokens[1];
+ String browser = tokens[2];
+ String key = ip + browser + getUsername();
+ String pass = tokens[3];
+
+ PropertyService service = LabsServices.getPropertyService();
+
+ String persistedPass = (String)service.getProperty(key, AUTLOGIN_PASSWORD);
+
+ log.info("Ip: " + ip + "Browser: " + browser + "Key: " + key + "Pass: " + pass + "PersPass: " + persistedPass);
+
+ return pass.equals(persistedPass);
+ } else {
+ passwordValid = (Boolean) Transactions.required(tm,
+ new Transactions.Runnable() {
+ public Object run() throws Exception {
try {
- User user = module
- .findUserByUserName(getUsername());
- if (havingRole == null
- || PermissionTools.getRoleNames(user).contains(
- havingRole)) {
- if (!user.getUserName().equals("admin")) {
- checkIfPasswordChanged(user);
- return user.validatePassword(inPassword);
+ UserModule module = getUserModule();
+ try {
+ User user = module
+ .findUserByUserName(getUsername());
+ if (havingRole == null
+ || PermissionTools
+ .getRoleNames(user)
+ .contains(havingRole)) {
+ if (!user.getUserName().equals(
+ "admin")) {
+ checkIfPasswordChanged(user);
+ return user
+ .validatePassword(inPassword);
+ } else {
+ return user
+ .validatePassword(inPassword);
+ }
+ } else {
+ return false;
}
- else {
- return user.validatePassword(inPassword);
- }
- } else {
- return false;
+ } catch (NoSuchUserException e) {
+ return lookForNewUser(getRoleModule());
}
- } catch (NoSuchUserException e) {
- return lookForNewUser(getRoleModule());
+ } catch (Exception e) {
+ throw new LoginException(e.toString());
}
- } catch (Exception e) {
- throw new LoginException(e.toString());
}
- }
- });
+ });
- // Returning null as password is enough to veto the login
- return passwordValid;
+ // Returning null as password is enough to veto the login
+ return passwordValid;
+ }
+
} catch (Exception e) {
return false;
}
@@ -156,7 +191,7 @@
private String checkIfPasswordChanged(User user) throws LoginException {
String password = null;
-
+
if (!getUsername().equals("admin")) {
/*
* check if password in the main db changed (not for admin account)
@@ -190,8 +225,7 @@
log.error("Couldn't connect to nukes database", e);
throw new LoginException(e.toString());
}
- }
- else {
+ } else {
// don't execute this for admin
return null;
}
@@ -266,11 +300,11 @@
log.error("Cannot create user " + getUsername(), e);
throw new LoginException(e.toString());
- }
+ }
if (user != null
- && (havingRole == null || PermissionTools.getRoleNames(user).contains(
- havingRole))) {
+ && (havingRole == null || PermissionTools.getRoleNames(
+ user).contains(havingRole))) {
/*
* User has been just created and it's only in the defaule
* role.
@@ -303,7 +337,8 @@
UserModule module = getUserModule();
User user = module
.findUserByUserName(getUsername());
- List<String> roleNames = PermissionTools.getRoleNames(user);
+ List<String> roleNames = PermissionTools
+ .getRoleNames(user);
//
Group rolesGroup = new SimpleGroup("Roles");
Modified: labs/jbosslabs/trunk/portal-extensions/forge-login-portlet/src/java/org/jbosslabs/security/filter/Login.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-login-portlet/src/java/org/jbosslabs/security/filter/Login.java 2006-10-17 19:55:03 UTC (rev 6869)
+++ labs/jbosslabs/trunk/portal-extensions/forge-login-portlet/src/java/org/jbosslabs/security/filter/Login.java 2006-10-17 20:53:19 UTC (rev 6870)
@@ -15,6 +15,7 @@
import javax.servlet.http.HttpServletResponse;
import org.jboss.forge.common.HttpUtils;
+import org.jboss.logging.Logger;
@@ -26,14 +27,18 @@
{
private final static String WRONG_REQ_RESP = "Error accessing the requested resource.";
+ private final static Logger log = Logger.getLogger(Login.class);
+
public void init(FilterConfig conf)
{
}
public void doFilter(ServletRequest request, ServletResponse response,
- FilterChain chain) throws IOException
+ FilterChain chain) throws IOException, ServletException
{
+
+ log.info("login filter");
try
{
if ((request instanceof HttpServletRequest)
@@ -87,6 +92,8 @@
{
e.printStackTrace();
}
+
+ chain.doFilter(request, response);
}
public void destroy()
Modified: labs/jbosslabs/trunk/portal-extensions/forge-login-portlet/src/java/org/jbosslabs/security/portlet/Login.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-login-portlet/src/java/org/jbosslabs/security/portlet/Login.java 2006-10-17 19:55:03 UTC (rev 6869)
+++ labs/jbosslabs/trunk/portal-extensions/forge-login-portlet/src/java/org/jbosslabs/security/portlet/Login.java 2006-10-17 20:53:19 UTC (rev 6870)
@@ -37,6 +37,8 @@
public void processAction(JBossActionRequest req, JBossActionResponse resp) throws PortletException, IOException {
+ log.info("process action executed");
+
try
{
Modified: labs/jbosslabs/trunk/portal-extensions/forge-login-portlet/src/web/WEB-INF/web.xml
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-login-portlet/src/web/WEB-INF/web.xml 2006-10-17 19:55:03 UTC (rev 6869)
+++ labs/jbosslabs/trunk/portal-extensions/forge-login-portlet/src/web/WEB-INF/web.xml 2006-10-17 20:53:19 UTC (rev 6870)
@@ -3,15 +3,14 @@
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
- <filter>
+ <!-- <filter>
<filter-name>loginFilter</filter-name>
<filter-class>org.jbosslabs.security.filter.Login</filter-class>
</filter>
<filter-mapping>
<filter-name>loginFilter</filter-name>
<url-pattern>/*</url-pattern>
- <dispatcher>REQUEST</dispatcher>
- </filter-mapping>
+ </filter-mapping> -->
<filter>
<filter-name>filesFromRepoFilter</filter-name>
Added: labs/jbosslabs/trunk/portal-extensions/forge-portal-attr/src/java/org/jboss/forge/portal/AutologinFilter.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-portal-attr/src/java/org/jboss/forge/portal/AutologinFilter.java 2006-10-17 19:55:03 UTC (rev 6869)
+++ labs/jbosslabs/trunk/portal-extensions/forge-portal-attr/src/java/org/jboss/forge/portal/AutologinFilter.java 2006-10-17 20:53:19 UTC (rev 6870)
@@ -0,0 +1,168 @@
+package org.jboss.forge.portal;
+
+import java.io.IOException;
+import java.util.Random;
+
+import javax.naming.InitialContext;
+import javax.naming.NamingException;
+import javax.servlet.Filter;
+import javax.servlet.FilterChain;
+import javax.servlet.FilterConfig;
+import javax.servlet.ServletException;
+import javax.servlet.ServletRequest;
+import javax.servlet.ServletResponse;
+import javax.servlet.http.Cookie;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.jboss.forge.common.propertypersistance.PropertyService;
+import org.jboss.forge.common.soa.LabsServices;
+import org.jboss.logging.Logger;
+
+public class AutologinFilter implements Filter {
+
+ private static final Logger log = Logger.getLogger(AutologinFilter.class);
+
+ public static final String REQUEST_AUTOLOGIN = "autologinRequest";
+
+ private static final int PASS_LEN = 24;
+
+ private static final String PASS_COOKIE = "labs_auto_password";
+
+ private static final String USER_COOKIE = "labs_auto_username";
+
+ private static final int COOKIE_EXPIRE = 60 * 60 * 24 * 5; // 5 days
+
+ private static final String AUTLOGIN_PASSWORD = "Autologin:password";
+
+ public void destroy() {
+ // TODO Auto-generated method stub
+
+ }
+
+ public void doFilter(ServletRequest request, ServletResponse response,
+ FilterChain chain) throws IOException, ServletException {
+
+ HttpServletRequest httpReq = (HttpServletRequest) request;
+ HttpServletResponse httpResp = (HttpServletResponse) response;
+
+ log.info("doing login");
+ if (httpReq.getUserPrincipal() != null
+ && httpReq.getSession().getAttribute(REQUEST_AUTOLOGIN) != null
+ && httpReq.getSession().getAttribute(REQUEST_AUTOLOGIN).equals(
+ true)) {
+
+ log.info("sending cookies");
+
+ httpReq.getSession().removeAttribute(REQUEST_AUTOLOGIN);
+
+ String pass = generatePass();
+
+ Cookie passCookie = new Cookie(PASS_COOKIE, pass);
+ passCookie.setMaxAge(COOKIE_EXPIRE);
+ Cookie userCookie = new Cookie(USER_COOKIE, httpReq
+ .getUserPrincipal().getName());
+ userCookie.setMaxAge(COOKIE_EXPIRE);
+
+ httpResp.addCookie(passCookie);
+ httpResp.addCookie(userCookie);
+
+ saveUserContext(httpReq.getUserPrincipal().getName(), pass, httpReq
+ .getRemoteAddr(), httpReq.getHeader("User-Agent"));
+
+ log.info(httpReq.getUserPrincipal().getName());
+ } else if (httpReq.getUserPrincipal() == null
+ && !httpReq.getRequestURI().equals("/portal/default/login")) {
+ // user not logged in - try autologin
+
+ log.info("Looking for cookies: " + httpReq.getRequestURI());
+
+ String[] cred;
+
+ if ((cred = hasCookies(httpReq)) != null && cred.length == 2) {
+ String url = httpReq.getContextPath() + "/auth"
+ + httpReq.getServletPath() + httpReq.getPathInfo();
+ url = httpResp.encodeRedirectURL(url);
+ httpResp.sendRedirect(url);
+ return;
+ }
+ }
+
+ chain.doFilter(request, response);
+
+ }
+
+ public static String[] hasCookies(HttpServletRequest httpReq) {
+ Cookie[] cookies = httpReq.getCookies();
+ String[] cred = new String[2];
+
+ boolean hasUserCookie = false;
+ boolean hasPassCookie = false;
+
+ if (cookies != null)
+ for (int i = 0; i < cookies.length
+ && !(hasUserCookie && hasPassCookie); i++) {
+ if (cookies[i].getName().equals(USER_COOKIE)) {
+ hasUserCookie = true;
+ cred[0] = cookies[i].getValue();
+ } else if (cookies[i].getName().equals(PASS_COOKIE)) {
+ hasPassCookie = true;
+ cred[1] = cookies[i].getValue();
+ }
+ }
+
+ if (hasUserCookie && hasPassCookie) {
+ return cred;
+ } else {
+ return null;
+ }
+ }
+
+ public void init(FilterConfig config) throws ServletException {
+ // TODO Auto-generated method stub
+
+ }
+
+ private String generatePass() {
+ String pass = "";
+
+ Random random = new Random();
+
+ for (int i = 0; i < PASS_LEN; i++) {
+ pass += (char) (65 + random.nextInt(122 - 65));
+ }
+
+ return pass;
+ }
+
+ private void saveUserContext(String username, String password, String ip,
+ String browser) {
+ try {
+ PropertyService propertyService = LabsServices.getPropertyService();
+
+ String id = ip + browser + username;
+
+ propertyService.setProperty(id, AUTLOGIN_PASSWORD, password);
+
+ log.info("Saved: " + username + " " + password + " " + ip + " "
+ + browser);
+
+ } catch (NamingException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ }
+
+ public static void clearCookies(HttpServletRequest request, HttpServletResponse response) {
+ Cookie[] cookies = request.getCookies();
+
+ if (cookies != null)
+ for (int i = 0; i < cookies.length; i++) {
+ if (cookies[i].getName().equals(USER_COOKIE) || cookies[i].getName().equals(PASS_COOKIE)) {
+ cookies[i].setMaxAge(0);
+ response.addCookie(cookies[i]);
+ }
+ }
+ }
+
+}
Added: labs/jbosslabs/trunk/portal-extensions/forge-portal-attr/src/java/org/jboss/forge/portal/LoginServlet.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-portal-attr/src/java/org/jboss/forge/portal/LoginServlet.java 2006-10-17 19:55:03 UTC (rev 6869)
+++ labs/jbosslabs/trunk/portal-extensions/forge-portal-attr/src/java/org/jboss/forge/portal/LoginServlet.java 2006-10-17 20:53:19 UTC (rev 6870)
@@ -0,0 +1,42 @@
+package org.jboss.forge.portal;
+
+import java.io.IOException;
+
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServlet;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.jboss.logging.Logger;
+
+public class LoginServlet extends HttpServlet {
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 1L;
+
+ private static final String AUTOLOGIN_NAME = "autologin";
+
+ private static final Logger log = Logger.getLogger(LoginServlet.class);
+
+ protected void doPost(HttpServletRequest request,
+ HttpServletResponse response) throws ServletException, IOException {
+
+ // if Remember me ticked - set autlogin cookies
+ if (request.getParameter(AUTOLOGIN_NAME) != null
+ && request.getParameter(AUTOLOGIN_NAME).equals("Remember me")) {
+ log.debug("Autologin enabled");
+ request.getSession().setAttribute(
+ AutologinFilter.REQUEST_AUTOLOGIN, true);
+ }
+ else {
+ log.debug("autologin disabled");
+ }
+
+ response.sendRedirect("j_security_check?j_username="
+ + request.getParameter("j_username") + "&j_password="
+ + request.getParameter("j_password"));
+ }
+
+}
Added: labs/jbosslabs/trunk/portal-extensions/forge-portal-attr/src/java/org/jboss/forge/portal/PerformLoginFilter.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-portal-attr/src/java/org/jboss/forge/portal/PerformLoginFilter.java 2006-10-17 19:55:03 UTC (rev 6869)
+++ labs/jbosslabs/trunk/portal-extensions/forge-portal-attr/src/java/org/jboss/forge/portal/PerformLoginFilter.java 2006-10-17 20:53:19 UTC (rev 6870)
@@ -0,0 +1,63 @@
+package org.jboss.forge.portal;
+
+import java.io.IOException;
+
+import javax.management.remote.JMXConnector;
+import javax.servlet.Filter;
+import javax.servlet.FilterChain;
+import javax.servlet.FilterConfig;
+import javax.servlet.ServletException;
+import javax.servlet.ServletRequest;
+import javax.servlet.ServletResponse;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.jboss.logging.Logger;
+
+public class PerformLoginFilter implements Filter {
+ private static final String PASS_TOKEN = "AutoLoginToken.";
+
+ private static final String TOKENIZER = "<!AutoLoginTokenizer!>";
+
+ private static final Logger log = Logger
+ .getLogger(PerformLoginFilter.class);
+
+ public void destroy() {
+ // TODO Auto-generated method stub
+
+ }
+
+ public void doFilter(ServletRequest request, ServletResponse response,
+ FilterChain chain) throws IOException, ServletException {
+
+ HttpServletRequest httpReq = (HttpServletRequest) request;
+ HttpServletResponse httpResp = (HttpServletResponse) response;
+
+ log.info("username: (" + httpReq.getRequestedSessionId() + ") "
+ + httpReq.getSession().getAttribute("j_username"));
+ log
+ .info("password: "
+ + httpReq.getSession().getAttribute("j_password"));
+
+ String[] cred;
+ if (httpReq.getRequestURI().contains("/login")
+ && (cred = AutologinFilter.hasCookies(httpReq)) != null
+ && cred.length == 2) {
+ httpResp.sendRedirect("j_security_check?j_username=" + cred[0]
+ + "&j_password=" + PASS_TOKEN + TOKENIZER
+ + httpReq.getRemoteAddr() + TOKENIZER
+ + httpReq.getHeader("User-Agent") + TOKENIZER + cred[1]);
+ return;
+
+ }
+
+ chain.doFilter(request, response);
+
+ }
+
+ public void init(FilterConfig arg0) throws ServletException {
+ // TODO Auto-generated method stub
+
+ }
+
+}
Added: labs/jbosslabs/trunk/portal-extensions/forge-portal-attr/src/java/org/jboss/forge/portal/ShowLoginPageServlet.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-portal-attr/src/java/org/jboss/forge/portal/ShowLoginPageServlet.java 2006-10-17 19:55:03 UTC (rev 6869)
+++ labs/jbosslabs/trunk/portal-extensions/forge-portal-attr/src/java/org/jboss/forge/portal/ShowLoginPageServlet.java 2006-10-17 20:53:19 UTC (rev 6870)
@@ -0,0 +1,51 @@
+package org.jboss.forge.portal;
+
+import java.io.IOException;
+
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServlet;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+public class ShowLoginPageServlet extends HttpServlet {
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 1L;
+
+ private static final String PASS_TOKEN = "AutoLoginToken.";
+
+ private static final String TOKENIZER = "<!AutoLoginTokenizer!>";
+
+ protected void doGet(HttpServletRequest request,
+ HttpServletResponse response) throws ServletException, IOException {
+
+ if (request.getRequestURI().endsWith("/logout")) {
+ AutologinFilter.clearCookies(request, response);
+
+ response.sendRedirect("/portal/auth/portal/default/login/LoginWindow?action=1&logout=true");
+
+ return;
+ } else {
+ String[] cred;
+
+ if ((cred = AutologinFilter.hasCookies(request)) != null
+ && cred.length == 2) {
+ response
+ .sendRedirect("j_security_check?j_username=" + cred[0]
+ + "&j_password=" + PASS_TOKEN + TOKENIZER
+ + request.getRemoteAddr() + TOKENIZER
+ + request.getHeader("User-Agent") + TOKENIZER
+ + cred[1]);
+ return;
+
+ } else {
+ response.sendRedirect("/portal/login");
+ return;
+ }
+ }
+
+ }
+
+}
Modified: labs/jbosslabs/trunk/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/InsidePluginExcecutor.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/InsidePluginExcecutor.java 2006-10-17 19:55:03 UTC (rev 6869)
+++ labs/jbosslabs/trunk/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/InsidePluginExcecutor.java 2006-10-17 20:53:19 UTC (rev 6870)
@@ -80,10 +80,12 @@
private WikiInsidePlugin loadObject(String className)
throws InstantiationException, IllegalAccessException,
ClassNotFoundException {
- WikiInsidePlugin wikiInsidePlugin = (WikiInsidePlugin) Class.forName(className).newInstance();
-
+ WikiInsidePlugin wikiInsidePlugin = (WikiInsidePlugin) Thread
+ .currentThread().getContextClassLoader().loadClass(className)
+ .newInstance();
+
wikiInsidePlugin.setWikiEngine(wikiEngine);
-
+
return wikiInsidePlugin;
}
@@ -94,11 +96,11 @@
// "\\{[\\w]+([\\s]+[\\w]+='[\\d\\w\\s]+')*\\s*\\}"
String localPluginLink = pluginLink;
-
+
WikiInsidePlugin plugin = null;
- log.debug("executing plugin: "+pluginLink);
-
+ log.debug("executing plugin: " + pluginLink);
+
if (!localPluginLink.matches(insidePluginRegex)) {
// this is not a proper inside plugin link
@@ -110,11 +112,13 @@
if (plugin != null) {
HashMap<String, String> attributes = extractAttribs(localPluginLink);
-
- return (plugin.processContent() ? HTMLTranslatorParts.pagePartRegexStart : "") + plugin.process(wikiPage, wikiSession,
- attributes) + (plugin.processContent() ? HTMLTranslatorParts.pagePartRegexEnd : "");
- }
- else
+
+ return (plugin.processContent() ? HTMLTranslatorParts.pagePartRegexStart
+ : "")
+ + plugin.process(wikiPage, wikiSession, attributes)
+ + (plugin.processContent() ? HTMLTranslatorParts.pagePartRegexEnd
+ : "");
+ } else
return "''INSIDE PLUGIN ERROR: There is no plugin: " + pluginLink
+ "''";
@@ -125,7 +129,7 @@
if (pluginDef.startsWith("{"))
pluginDef = pluginDef.substring(1);
-
+
pluginDef = pluginDef.trim();
if (pluginDef.startsWith("INSERT")) {
@@ -135,13 +139,14 @@
pluginDef = pluginDef.trim();
int spacePos = pluginDef.indexOf(" ");
-
- String className = pluginDef.substring(0, (spacePos != -1) ? spacePos : pluginDef.indexOf("}"));
+ String className = pluginDef.substring(0, (spacePos != -1) ? spacePos
+ : pluginDef.indexOf("}"));
+
pluginDef = pluginDef.substring(className.length()).trim();
- log.debug("Plugin name: "+className);
-
+ log.debug("Plugin name: " + className);
+
if (className.indexOf('.') != -1) {
// full class name
try {
@@ -163,7 +168,7 @@
}
private HashMap<String, String> extractAttribs(String pluginDef) {
-
+
HashMap<String, String> attributes = new HashMap<String, String>();
Matcher matcher = Pattern.compile(attribType1).matcher(pluginDef);
@@ -173,7 +178,7 @@
getAttrib1(attrib.trim(), attributes);
}
-
+
matcher = Pattern.compile(attribType2).matcher(pluginDef);
while (matcher.find()) {
@@ -184,25 +189,27 @@
return attributes;
}
-
- private void getAttrib1(String attrib, HashMap<String,String> attributes) {
+
+ private void getAttrib1(String attrib, HashMap<String, String> attributes) {
// digits or true/false
String attribName = attrib.substring(0, attrib.indexOf("="));
- String attribValue = attrib.substring(attrib.indexOf("=")+1, attrib.length());
-
+ String attribValue = attrib.substring(attrib.indexOf("=") + 1, attrib
+ .length());
+
attributes.put(attribName, attribValue);
-
- log.debug("new attribute: "+attribName+" "+attribValue);
+
+ log.debug("new attribute: " + attribName + " " + attribValue);
}
-
- private void getAttrib2(String attrib, HashMap<String,String> attributes) {
+
+ private void getAttrib2(String attrib, HashMap<String, String> attributes) {
// string, digits ... also special characters (\' = ')
-
+
String attribName = attrib.substring(0, attrib.indexOf("="));
- String attribValue = attrib.substring(attrib.indexOf('\'')+1, attrib.length()-1).replaceAll("\\\\'", "'");
-
+ String attribValue = attrib.substring(attrib.indexOf('\'') + 1,
+ attrib.length() - 1).replaceAll("\\\\'", "'");
+
attributes.put(attribName, attribValue);
-
- log.debug("new attribute: "+attribName+" "+attribValue);
+
+ log.debug("new attribute: " + attribName + " " + attribValue);
}
}
Modified: labs/jbosslabs/trunk/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/WikiEngine.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/WikiEngine.java 2006-10-17 19:55:03 UTC (rev 6869)
+++ labs/jbosslabs/trunk/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/WikiEngine.java 2006-10-17 20:53:19 UTC (rev 6870)
@@ -378,8 +378,10 @@
// LOAD data sources
if (jbosswikiprops.getProperty("mediaDataSourceClass") != null) {
try {
- mediaDataSource = (MediaDataSource) Class.forName(
- jbosswikiprops.getProperty("mediaDataSourceClass"))
+ mediaDataSource = (MediaDataSource) Thread.currentThread()
+ .getContextClassLoader().loadClass(
+ jbosswikiprops
+ .getProperty("mediaDataSourceClass"))
.newInstance();
} catch (InstantiationException e) {
log.error(e);
@@ -418,8 +420,12 @@
if (jbosswikiprops.getProperty("wikiPageDictionaryClass") != null) {
try {
- wikiPageDictionary = (WikiPageDictionary) Class.forName(
- jbosswikiprops.getProperty("wikiPageDictionaryClass"))
+ wikiPageDictionary = (WikiPageDictionary) Thread
+ .currentThread()
+ .getContextClassLoader()
+ .loadClass(
+ jbosswikiprops
+ .getProperty("wikiPageDictionaryClass"))
.newInstance();
} catch (InstantiationException e) {
log.error(e);
@@ -448,8 +454,9 @@
// load credential class
if (jbosswikiprops.getProperty("credentialsClass") != null) {
try {
- credentialsClass = Class.forName(jbosswikiprops
- .getProperty("credentialsClass"));
+ credentialsClass = Thread.currentThread()
+ .getContextClassLoader().loadClass(
+ jbosswikiprops.getProperty("credentialsClass"));
} catch (ClassNotFoundException e) {
log.error("Coudln't load credentials class.", e);
}
@@ -1055,8 +1062,10 @@
// LOAD data sources
if (jbosswikiprops.getProperty("mediaDataSourceClass") != null) {
try {
- newMDS = (MediaDataSource) Class.forName(
- jbosswikiprops.getProperty("mediaDataSourceClass"))
+ newMDS = (MediaDataSource) Thread.currentThread()
+ .getContextClassLoader().loadClass(
+ jbosswikiprops
+ .getProperty("mediaDataSourceClass"))
.newInstance();
} catch (InstantiationException e) {
log.error(e);
@@ -1099,8 +1108,12 @@
if (jbosswikiprops.getProperty("wikiPageDictionaryClass") != null) {
try {
- newWPD = (WikiPageDictionary) Class.forName(
- jbosswikiprops.getProperty("wikiPageDictionaryClass"))
+ newWPD = (WikiPageDictionary) Thread
+ .currentThread()
+ .getContextClassLoader()
+ .loadClass(
+ jbosswikiprops
+ .getProperty("wikiPageDictionaryClass"))
.newInstance();
} catch (InstantiationException e) {
log.error(e);
Modified: labs/jbosslabs/trunk/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/WikiType.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/WikiType.java 2006-10-17 19:55:03 UTC (rev 6869)
+++ labs/jbosslabs/trunk/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/WikiType.java 2006-10-17 20:53:19 UTC (rev 6870)
@@ -58,7 +58,7 @@
WikiPlugin plugin = null;
try {
- plugin = (WikiPlugin) Class.forName(pluginClass).newInstance();
+ plugin = (WikiPlugin) Thread.currentThread().getContextClassLoader().loadClass(pluginClass).newInstance();
} catch (Exception e) {
log.error("Error while loading plugin: " + pluginName
+ "\nclass: " + pluginClass + "\n" + e);
Modified: labs/jbosslabs/trunk/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/WikiTypeLoader.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/WikiTypeLoader.java 2006-10-17 19:55:03 UTC (rev 6869)
+++ labs/jbosslabs/trunk/portal-extensions/jbosswiki/wiki-common/src/java/org/jboss/wiki/WikiTypeLoader.java 2006-10-17 20:53:19 UTC (rev 6870)
@@ -16,77 +16,81 @@
import org.xml.sax.SAXException;
public class WikiTypeLoader {
-
+
private WikiEngine wikiEngine;
-
+
private Logger log = Logger.getLogger(this.getClass());
-
+
public WikiTypeLoader(WikiEngine wikiEngine) {
this.wikiEngine = wikiEngine;
}
-
- public void parse(InputStream xmlFile) throws ParserConfigurationException, SAXException, IOException, DOMException, InstantiationException, IllegalAccessException, ClassNotFoundException {
- DocumentBuilder db = DocumentBuilderFactory.newInstance().newDocumentBuilder();
-
+
+ public void parse(InputStream xmlFile) throws ParserConfigurationException,
+ SAXException, IOException, DOMException, InstantiationException,
+ IllegalAccessException, ClassNotFoundException {
+ DocumentBuilder db = DocumentBuilderFactory.newInstance()
+ .newDocumentBuilder();
+
Document doc = db.parse(xmlFile);
-
+
NodeList wikiTypes = doc.getElementsByTagName("wikiType");
-
+
for (int i = 0; i < wikiTypes.getLength(); i++) {
WikiType wikiType = null;
-
+
String wikiTypeName = null;
-
+
Node wikiTypeNode = wikiTypes.item(i);
-
+
NodeList wikiTypeElements = wikiTypeNode.getChildNodes();
-
+
for (int j = 0; j < wikiTypeElements.getLength(); j++) {
-
- Node elem = wikiTypeElements.item(j);
-
+
+ Node elem = wikiTypeElements.item(j);
+
if (elem.getNodeName().equals("name")) {
if (wikiType != null)
wikiType.setName(unmarshallText(elem));
else
wikiTypeName = unmarshallText(elem);
- }
- else if (elem.getNodeName().equals("class")) {
- wikiType = (WikiType)Class.forName(unmarshallText(elem)).newInstance();
+ } else if (elem.getNodeName().equals("class")) {
+ wikiType = (WikiType) Thread.currentThread()
+ .getContextClassLoader().loadClass(
+ unmarshallText(elem)).newInstance();
wikiType.setWikiEngine(wikiEngine);
-
+
if (wikiTypeName != null)
wikiType.setName(wikiTypeName);
- }
- else if (elem.getNodeName().equals("plugin")) {
+ } else if (elem.getNodeName().equals("plugin")) {
NodeList pluginElems = elem.getChildNodes();
-
+
String pluginName = null;
String pluginClass = null;
-
+
for (int k = 0; k < pluginElems.getLength(); k++) {
Node pluginElem = pluginElems.item(k);
-
+
if (pluginElem.getNodeName().equals("name")) {
pluginName = unmarshallText(pluginElem);
- }
- else if (pluginElem.getNodeName().equals("class")) {
+ } else if (pluginElem.getNodeName().equals("class")) {
pluginClass = unmarshallText(pluginElem);
}
}
-
+
if (pluginName != null && pluginClass != null)
wikiType.addPlugin(pluginName, pluginClass);
else
- log.error("Cannot read plugin: name: "+pluginName+" class: "+pluginClass+" in WikiType: "+wikiType.getName());
+ log.error("Cannot read plugin: name: " + pluginName
+ + " class: " + pluginClass + " in WikiType: "
+ + wikiType.getName());
}
}
-
+
wikiEngine.addWikiType(wikiType.getName(), wikiType);
- log.info("Added WikiType: "+wikiType.getName());
+ log.info("Added WikiType: " + wikiType.getName());
}
}
-
+
private String unmarshallText(Node textNode) {
StringBuffer buf = new StringBuffer();
Modified: labs/jbosslabs/trunk/portal-extensions/jbosswiki/wiki-management/src/java/org/jboss/wiki/EMailNotifierSLSB.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/jbosswiki/wiki-management/src/java/org/jboss/wiki/EMailNotifierSLSB.java 2006-10-17 19:55:03 UTC (rev 6869)
+++ labs/jbosslabs/trunk/portal-extensions/jbosswiki/wiki-management/src/java/org/jboss/wiki/EMailNotifierSLSB.java 2006-10-17 20:53:19 UTC (rev 6870)
@@ -53,7 +53,7 @@
buffer
.append(
- "This message is generated automaticcaly. Please do not reply. To remove yourself from the watch list please go to ")
+ "This message is generated automatically. Please do not reply. To remove yourself from the watch list please go to ")
.append(notifications.getPageLink()).append(
"<br />\n");
buffer.append(notifications.getPageContent());
More information about the jboss-svn-commits
mailing list