Tim Telcik Blogs and Apps

General Blogs October 13, 2015 By Tim Telcik

Links

 

How to check the active permission algorithm in Liferay Portal 6.x

Technical Blogs May 21, 2014 By Tim Telcik

Overview

Liferay Portal 5 and 6 support different permission algorithms.

Liferay Portal 5.2.x and 6.0.x supported permission algorithm 5. In addition, Liferay Portal 6.0.x introduced permission algorithm 6.

Brian Chan states, "Algorithm 6 is an improved version of Algorithm 5. It provides the exact same functionality, but reduces database size by 66%."

Please refer to the References section (below) for related links on permission algorithm 5 and 6.

If you are using Liferay Portal 5.2.x, you will be using permission algorithm 5.

But, if you are using Liferay Portal 6.0.x, you could be using permission algorithm 5 or 6.

How do you check which permission algorithm is active in Liferay Portal 6.0.x ?

Permission Algorithm Checks

Check 1 - Check Active Permission Algorithm Using System Admin Control Panel

  1. Navigate to "Control Panel > Server Administration > Properties > Portal Properties"
  2. Find property "permissions.user.check.algorithm" and confirm the value is 6.

Check 2 - Review Liferay Portal Database Tables

Permission algorithm 6 relies upon different tables and data in the database schema.

Review the row counts for the "Permission_" and "Resource_" tables.

Liferay Portal 6.0.x Permission Database Tables
Table Name LP 5.2.x Row Count LP 6.0.x Row Count
Permission_ 31+ 0
Resource_ 20+ 0

If permission algorithm 6 is active, the row count for the "Permission_" and "Resource_" tables will be 0 (empty).

References

 

How to enable or disable logging on a live Liferay Portal server

Technical Blogs August 14, 2013 By Tim Telcik

Overview

As an administrator of a Liferay Portal server, you may be required to trace the behaviour of one or more services for a live instance.

This article outlines the steps for enabling or disabling logging categories which typically represent a component or service within Liferay Portal.

The output from the logging system (i.e. Apache Log4j) is typically written to standard output, which is normally routed to the web or app server's log files

e.g.

  • LIFERAY_HOME/logs/liferay.log
  • LIFERAY_HOME/tomcat-xxx/logs/catalina.out

Enable Logging

To enable logging on a live Liferay Portal server, follow these steps :

1/ Navigate to Control Panel > Server Administration as admin user

2/ Select "Log Level" tab

3/ Select "Add Category" tab

4/ Enter category name in text field

eg.

com.liferay.portlet.InvokerPortletImpl

5/ Select required logging level from pick list

eg.

DEBUG, INFO, WARN, ERROR or FATAL

6/ Click Save button

Disable Logging

To disable logging on a live Liferay Portal server, follow these steps :

1/ Navigate to Control Panel > Server Administration as admin user

2/ Select "Log Level" tab

3/ Select "Update Category" tab

4/ Enter category name in text field and click search

eg.

com.liferay.portlet.InvokerPortletImpl


5/ Find matching categories in results list

6/ Select required logging level from pick list for each category

eg.

DEBUG, INFO, WARN, ERROR or FATAL


7/ Click Save button

Related Articles

References

 

How to undeploy a Liferay Portal 6 EXT Plugin

Technical Blogs July 30, 2013 By Tim Telcik

Overview

Liferay Portal 6 supports six plugin types for customizing and extending the base product :

  • Portlets
  • Hooks
  • Themes
  • Layouts
  • EXT
  • Web

For many extension cases, portlets, hooks, themes and layouts are sufficient to help you customize Liferay Portal.

However, occassionally you will need to extend or replace one or more pieces of core functionality, which is only possible using an EXT (extension) plugin.

One issue that arises when using EXT plugins is removing them to ensure a clean re-deployment or removing them when no longer required.

Unfortunately, undeploying an EXT plugin is not as simple as undeploying a portlet or hook plugin. The EXT plugin affects multiple runtime files during deployment.

Loutilities posted a very simple and effective MS DOS-based script for undeploying EXT plugins which I have used and am sharing here.

Please refer to the references section below for links to details on EXT plugin development.

Please refer to the appendix for a BASH-based script for undeploying EXT plugins.

References

Appendix - Clean My EXT Plugin BASH Script

#!/bin/sh

####
##
## Purpose: Simple script to purge EXT plugin resources from Liferay Portal 6.x installation.
##
## Caveats: This script comes with no warranty whatsoever. 
##          Review before using and use at your own risk.
##
## Usage: clean-my-ext-plugin.sh 
##
## @author Loutilities "http://en.gravatar.com/loutilities"
## @author Tim Telcik "tim.telcik@permeance.com.au"
##
## @created: 31-July-2013
##
## @see http://loutilities.wordpress.com/2010/12/06/how-to-undeploy-liferay-6-ee-ext-plugin/
##
####

if [ $# -ne 1 ]; then
 echo "Usage: clean-my-ext [ext-name]"
 exit 1
fi

tomcat_home="./tomcat"
app_name="$1"

rm -rf $tomcat_home/temp/*
rm -rf $tomcat_home/work/*
rm -rf $tomcat_home/webapps/$app_name-ext
rm -rf $tomcat_home/webapps/ROOT/html/portlet/ext
rm -f $tomcat_home/lib/ext/ext-$app_name-ext-service.jar
rm -f $tomcat_home/webapps/ROOT/WEB-INF/lib/ext-$app_name-ext-util-bridges.jar
rm -f $tomcat_home/webapps/ROOT/WEB-INF/lib/ext-$app_name-ext-util-taglib.jar
rm -f $tomcat_home/webapps/ROOT/WEB-INF/lib/ext-$app_name-ext-util-java.jar
rm -f $tomcat_home/webapps/ROOT/WEB-INF/lib/ext-$app_name-ext-impl.jar
rm -f $tomcat_home/webapps/ROOT/WEB-INF/ext-$app_name-ext.xml
rm -f $tomcat_home/webapps/ROOT/WEB-INF/tiles-defs-ext.xml

 

How do I configure Apache HTTPD and Liferay Portal to use SSL

Technical Blogs July 30, 2013 By Tim Telcik

Overview

This article outlines the steps for configuring Apache HTTPD and Liferay Portal with SSL.

This article should be used in conjunction with the following articles:

Configuration

Liferay Portal Properties

Add/update file "LIFERAY_HOME/portal-ext.properties" with the following properties :

  • company.security.auth.requires.https=true
  • web.server.protocol=https
  • session.enable.phishing.protection=false


Sample Configuration

Add/update the following properties in "portal-ext.properties" file :

##
## Company
##

    #company.default.name=Liferay
    company.default.name=My Site Name

    #
    # This sets the default web id. Omniadmin users must belong to the company
    # with this web id.
    #
    #company.default.web.id=liferay.com
    company.default.web.id=mysite.mydomain.com.au

    #
    # Set this to true to ensure users login with https. If this is set to true
    # and you want your HTTP session to contain your credentials after logging
    # in, then the property "session.enable.phishing.protection" must be set to
    # false or your credentials will only be available in the HTTPS session.
    #
    #company.security.auth.requires.https=false
    company.security.auth.requires.https=true


##
## Web Server
##

    #
    # Set the HTTP and HTTPs ports when running the portal in a J2EE server that
    # is sitting behind another web server like Apache. Set the values to -1 if
    # the portal is not running behind another web server like Apache.
    #
    #web.server.http.port=-1
    #web.server.https.port=-1

    #
    # Set the hostname that will be used when the portlet generates URLs.
    # Leaving this blank will mean the host is derived from the servlet
    # container.
    #
    #web.server.host=
    web.server.host=mysite.mydomain.com.au

    #
    # Set the preferred protocol.
    #
    #web.server.protocol=http
    web.server.protocol=https


##
## Session
##

    #
    # Set this to true to invalidate the session when a user logs into the
    # portal. This helps prevents phishing. Set this to false if you need the
    # guest user and the authenticated user to have the same session.
    #
    # Set this to false if the property "company.security.auth.requires.https"
    # is set to true and you want to maintain the same credentials across HTTP
    # and HTTPS sessions.
    #
    #session.enable.phishing.protection=true
    session.enable.phishing.protection=false


Apache HTTPD Configuration

Add/update file "/etc/httpd/conf/httpd.conf" :

RewriteEngine On
# This will enable the Rewrite capabilities

RewriteCond %{HTTPS} !=on
# This checks to make sure the connection is not already HTTPS

RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R,L]
# This rule will redirect users from their original location, to the same location but using HTTPS.
# i.e.  http://www.example.com/foo/ to https://www.example.com/foo/
# The leading slash is made optional so that this will work either in httpd.conf
# or .htaccess context

 

References

How to configure Google Mail in Liferay Portal

Technical Blogs July 30, 2013 By Tim Telcik

Overview

Configuring Liferay Portal to use Google Mail is relatively easy.

The key is to enable SSL socket connections.

The following article provides steps to enable Liferay Portal to send email via Google Mail.

NOTE: This article was renamed from article How do I configure Liferay Portal to use Google Mail.

To assist with tracing mail issue, please refer to related article How to trace mail in Liferay Portal.

Test Environments

The following mail configuration has been tested with these products:

  • Liferay Portal 6.0 EE
  • Liferay Portal 6.1 EE 
  • Liferay Portal 6.2 EE

The configuration may also be suitable for these products:

  • Liferay Portal 6.0 CE
  • Liferay Portal 6.1 CE
  • Liferay Portal 6.2 CE

Mail Configuration

Configure mail settings in Liferay Portal using one of these approaches :

  1. Portal properties
  2. Portal properties and JNDI
  3. Control Panel > Server Administration > Mail

Background - Secure Mail Configuration

Establishing an email session with the Google Mail service requires a secure connection.

The default Liferay Portal 6.x mail configuration properties do not show how to establish a secure connection using additional mail SSL properties.

The mail SMTP properties "mail.session.mail.smtp.socketFactory" and "mail.session.mail.smtp.starttls.enable" are not defined in the default portal properties file "portal-impl.jar!portal.properties".

For the curious, the secure (SSL) and TLS properties are defined at runtime by Liferay Portal class com.liferay.util.mail.MailEngine

Configure using Portal Properties

Add/update file "LIFERAY_HOME/portal-ext.properties" with the following mail session properties :

FILE: LIFERAY_HOME/portal-ext.properties

mail.session.mail.pop3.host=pop.gmail.com
mail.session.mail.pop3.password=PASSWORD
mail.session.mail.pop3.port=110
mail.session.mail.pop3.user=USER
mail.session.mail.imap.host=imap.gmail.com
mail.session.mail.imap.port=993
mail.session.mail.store.protocol=imap
mail.session.mail.transport.protocol=smtp
mail.session.mail.smtp.host=smtp.gmail.com
mail.session.mail.smtp.password=PASSWORD
mail.session.mail.smtp.user=USER
mail.session.mail.smtp.port=465
mail.session.mail.smtp.auth=true
mail.session.mail.smtp.starttls.enable=true
mail.session.mail.smtp.socketFactory.class=javax.net.ssl.SSLSocketFactory

NOTE: Replace USER and PASSWORD with required user and password for Google Mail account.

Configure using Portal Properties and JNDI

Configure Portal Properties

Add/update file "LIFERAY_HOME/portal-ext.properies" with the following mail session properties :

FILE: LIFERAY_HOME/portal-ext.properties

mail.session.jndi.name=mail/MailSession

Configure Tomcat Context

Add/update file "LIFERAY_HOME/tomcat-xxx/conf/Catalina/localhost/ROOT.xml" with the following "Resource" element :

<Resource
   name="mail/MailSession"
   auth="Container"
   type="javax.mail.Session"
   mail.imap.host="imap.gmail.com"
   mail.imap.port="993"
   mail.pop.host="pop.gmail.com"
   mail.store.protocol="imap"
   mail.transport.protocol="smtp"
   mail.smtp.host="smtp.gmail.com"
   mail.smtp.port="465"
   mail.smtp.auth="true"
   mail.smtp.starttls.enable="true"
   mail.smtp.user=USER
   password=PASSWORD
   mail.smtp.socketFactory.class="javax.net.ssl.SSLSocketFactory"
/>

NOTE: Replace USER and PASSWORD with required user and password for Google Mail account.

Configure using Control Panel > Server Administration > Mail

Sign in to Liferay Portal as admin user.

Navigate to "Control Panel > Server Administration > Mail"

Edit POP and SMTP mail settings.

eg.

Incoming POP Settings

  • Incomding POP Server:  pop.gmail.com
  • Incoming Port:  110
  • Use a Secure Network Connection:  YES
  • User Name:  POP-EMAIL-USER
  • Password:  POP-EMAIL-PASSWORD

Outgoing SMTP Server Settings

  • Outgoing SMTP Server:  smtp.gmail.com
  • Outgoing Port:  465
  • Use a Secure Network Connection:  YES
  • User Name:  SMTP-EMAIL-USER
  • Password:  SMTP-EMAIL-PASSWORD

Troubleshooting

The contents of this section have moved to article How to trace mail in Liferay Portal

References

How to clear Firefox favourite (aka. shortcut) web site icons

Technical Blogs July 22, 2013 By Tim Telcik

Overview

Firefox can be quite obstinate when it comes to clearing favourite (aka. shortcut) web site icons from it's cache.

This short article wil outline the steps for clearing favourite icons in Firefox, based on the original article Clearing All Favicons From Firefox 3 Cache by Rich Menga.

Steps

1/ Install Firefox add-on SQLite Manager

2/ Select Firefox favourites database "places.sqlite"

3/ Review matching favourite web site icons (eg. "permeance")

eg.

SELECT * FROM  "main"."moz_favicons" where url like '%permeance%';


4/ Delete matching favourite web site icons (eg. "permeance")

eg.

DELETE FROM  "main"."moz_favicons" where url like '%permeance%';


References

How do I change Liferay Portal web context path from ROOT to portal

Technical Blogs July 15, 2013 By Tim Telcik

Overview

The article outlines the steps to change the default Liferay Portal web context from "/" to "/portal" ?

Steps

Step 1 - Over-ride property "portal.ctx"

Over-ride the property "portal.ctx" in file "LIFERAY_HOME/portal-ext.properties".

Add (or over-ride) the following property :

    portal.ctx=/portal

Step 2 - Deploy (or redeploy) the Liferay portal web app to the new context path.

Step 2.1 - Example using Liferay Portal 6.1 + Tomcat bundle

If you are using a Liferay Portal 6.1 + Tomcat bundle, you can change the Liferay Portal web app context path to "/portal" as follows :

  • Move/rename folder "TOMCAT/webapps/ROOT" to "TOMCAT/webapps/portal".
  • Move/rename context file "TOMCAT/conf/Catalina/localhost/ROOT.xml" to "TOMCAT/conf/Catalina/localhost/portal.xml"


Liferay Portal will now rewrite all paths relative to "/portal". Hence "/web/guest' will become "/portal/web/guest".
 
NOTE: If you are using a different Java web application server, or a non-LP+Tomcat bundle, the configuration process may vary.
 

References

How to patch Liferay Portal 6.1 EE source

Technical Blogs July 7, 2013 By Tim Telcik

Overview

The follow document outlines high level steps for patching Liferay Portal 6.1 source.

NOTE: This approach also works with Liferay Portal 6.2

Patching Steps

Show installed and available patch details

% cd LIFERAY_HOME/patching-tool 

% ./patching-tool info

Currently installed patches: announcements-1-6120, core-5-6120, 
documents-and-media-2-6120, dynamic-data-lists-1-6120, hotfix-1319-6120, 
hotfix-1324-6120, hotfix-55-6120, hotfix-56-6120, message-boards-1-6120, 
plugin-deployment-1-6120, security-hotfix-3-6120, service-builder-1-6120, 
tags-and-categories-1-6120, upgrade-2-6120

Available patches: 
  [ D] security-hotfix-1-6120 :: Currently not installed; 
       Won't be installed: the same issues were fixed in the following patches(s): core-5-6120
  [*I] plugin-deployment-1-6120 :: Installed; Will be installed.
  [*I] service-builder-1-6120 :: Installed; Will be installed.
  [*I] hotfix-55-6120 :: Installed; Will be installed.
  [*I] hotfix-56-6120 :: Installed; Will be installed.
  [*I] documents-and-media-2-6120 :: Installed; Will be installed.
  [ D] security-hotfix-2-6120 :: Currently not installed; 
       Won't be installed: the same issues were fixed in the following patches(s): core-5-6120
  [*I] security-hotfix-3-6120 :: Installed; Will be installed.
  [*I] upgrade-2-6120 :: Installed; Will be installed.
  [*I] message-boards-1-6120 :: Installed; Will be installed.
  [*I] dynamic-data-lists-1-6120 :: Installed; Will be installed.
  [*I] tags-and-categories-1-6120 :: Installed; Will be installed.
  [*I] announcements-1-6120 :: Installed; Will be installed.
  [ -] core-4-6120 :: Currently not installed; 
       Won't be installed: core-5 contains the fixes included in this one
  [*I] core-5-6120 :: Installed; Will be installed.
  [*I] hotfix-1319-6120 :: Installed; Will be installed.
  [*I] hotfix-1324-6120 :: Installed; Will be installed.

Show installed patches

$ ./patching-tool.sh info | grep Installed

  [*I] plugin-deployment-1-6120 :: Installed; Will be installed.
  [*I] service-builder-1-6120 :: Installed; Will be installed.
  [*I] hotfix-55-6120 :: Installed; Will be installed.
  [*I] hotfix-56-6120 :: Installed; Will be installed.
  [*I] documents-and-media-2-6120 :: Installed; Will be installed.
  [*I] security-hotfix-3-6120 :: Installed; Will be installed.
  [*I] upgrade-2-6120 :: Installed; Will be installed.
  [*I] message-boards-1-6120 :: Installed; Will be installed.
  [*I] dynamic-data-lists-1-6120 :: Installed; Will be installed.
  [*I] tags-and-categories-1-6120 :: Installed; Will be installed.
  [*I] announcements-1-6120 :: Installed; Will be installed.
  [*I] core-5-6120 :: Installed; Will be installed.
  [*I] hotfix-1319-6120 :: Installed; Will be installed.
  [*I] hotfix-1324-6120 :: Installed; Will be installed.

Clone Liferay Portal source folder (Optional/Recommended)

% cd LIFERAY_HOME
% cp  -r  liferay-portal-src-6.1.10-ee-ga1  liferay-portal-src-6.1.10-ee-ga1-patched

Configure patching tool source profile

Create/update patch-source profile properties file "LIFERAY_HOME/patching-tools/patch-source.properties".

patching.mode=source
jdk.version=jdk6
source.path=../portal-src/liferay-portal-src-6.1.10-ee-ga1-patched

 

NOTE: The default patchin tool binary profile is named "default.properties".

Install patched source files

% cd LIFERAY_HOME/patching-tool
% ./patching-tool patch-source  install

Update Eclipse Project file (Optional/Recommended)

If you are using the Eclipse IDE, revise the Eclipse project name for the patched source folder to distinguish it from the baseline source.

One approach is to suffix the project name with "-patched".

Hence, project "portal-master" becomes "portal-trunk-patched".

<?xml version="1.0" encoding="UTF-8"?>

<projectDescription>       
<name>portal-master-patched</name>       
</projectDescription>

Appendix

Liferay Patch Kit Package Structure

Liferay Portal patches are packaged as ZIP files.

eg. liferay-fix-pack-announcements-1-6120.zip

Root ZIP Folder List

  • backup
  • diffs
  • fixpack_documentation.xml
  • jdk5
  • jdk6
  • src

Full ZIP Folder List

$ unzip -l patches/liferay-fix-pack-announcements-1-6120.zip 

Archive:  patches/liferay-fix-pack-announcements-1-6120.zip
  Length     Date   Time    Name
 --------    ----   ----    ----
        0  12-15-12 01:58   backup/
        0  12-15-12 01:58   backup/WAR_PATH/
        0  12-15-12 01:58   backup/WAR_PATH/WEB-INF/
        0  12-15-12 01:58   backup/WAR_PATH/WEB-INF/lib/
        0  12-15-12 01:58   backup/WAR_PATH/WEB-INF/lib/portal-impl.jar/
        0  12-15-12 01:58   backup/WAR_PATH/WEB-INF/lib/portal-impl.jar/com/
        0  12-15-12 01:58   backup/WAR_PATH/WEB-INF/lib/portal-impl.jar/com/liferay/
        0  12-15-12 01:58   backup/WAR_PATH/WEB-INF/lib/portal-impl.jar/com/liferay/portlet/
        0  12-15-12 01:58   backup/WAR_PATH/WEB-INF/lib/portal-impl.jar/com/liferay/portlet/announcements/
        0  12-15-12 01:58   backup/WAR_PATH/WEB-INF/lib/portal-impl.jar/com/liferay/portlet/announcements/service/
        0  12-15-12 01:58   backup/WAR_PATH/WEB-INF/lib/portal-impl.jar/com/liferay/portlet/announcements/service/impl/
     4245  12-15-12 01:58   backup/WAR_PATH/WEB-INF/lib/portal-impl.jar/com/liferay/portlet/announcements/service/impl/AnnouncementsEntryServiceImpl.class
        0  12-15-12 01:58   backup/WAR_PATH/WEB-INF/lib/portal-impl.jar/com/liferay/portlet/announcements/service/http/
     5087  12-15-12 01:58   backup/WAR_PATH/WEB-INF/lib/portal-impl.jar/com/liferay/portlet/announcements/service/http/AnnouncementsEntryServiceHttp.class
     3201  12-15-12 01:58   backup/WAR_PATH/WEB-INF/lib/portal-impl.jar/com/liferay/portlet/announcements/service/http/AnnouncementsEntryServiceSoap.class
        0  12-15-12 01:58   backup/WAR_PATH/WEB-INF/lib/portal-impl.jar/com/liferay/portlet/announcements/action/
     1471  12-15-12 01:58   backup/WAR_PATH/WEB-INF/lib/portal-impl.jar/com/liferay/portlet/announcements/action/ActionUtil.class
        0  12-15-12 01:58   backup/WAR_PATH/WEB-INF/lib/portal-impl.jar/META-INF/
    46779  12-15-12 01:58   backup/WAR_PATH/WEB-INF/lib/portal-impl.jar/META-INF/MANIFEST.MF
        0  12-15-12 01:58   backup/GLOBAL_LIB_PATH/
        0  12-15-12 01:58   backup/GLOBAL_LIB_PATH/portal-service.jar/
        0  12-15-12 01:58   backup/GLOBAL_LIB_PATH/portal-service.jar/com/
        0  12-15-12 01:58   backup/GLOBAL_LIB_PATH/portal-service.jar/com/liferay/
        0  12-15-12 01:58   backup/GLOBAL_LIB_PATH/portal-service.jar/com/liferay/portlet/
        0  12-15-12 01:58   backup/GLOBAL_LIB_PATH/portal-service.jar/com/liferay/portlet/announcements/
        0  12-15-12 01:58   backup/GLOBAL_LIB_PATH/portal-service.jar/com/liferay/portlet/announcements/service/
     1233  12-15-12 01:58   backup/GLOBAL_LIB_PATH/portal-service.jar/com/liferay/portlet/announcements/service/AnnouncementsEntryService.class
     2998  12-15-12 01:58   backup/GLOBAL_LIB_PATH/portal-service.jar/com/liferay/portlet/announcements/service/AnnouncementsEntryServiceUtil.class
     3463  12-15-12 01:58   backup/GLOBAL_LIB_PATH/portal-service.jar/com/liferay/portlet/announcements/service/AnnouncementsEntryServiceWrapper.class
        0  12-15-12 01:56   diffs/
        0  12-15-12 01:56   diffs/portal-impl/
        0  12-15-12 01:56   diffs/portal-impl/src/
        0  12-15-12 01:56   diffs/portal-impl/src/com/
        0  12-15-12 01:56   diffs/portal-impl/src/com/liferay/
        0  12-15-12 01:56   diffs/portal-impl/src/com/liferay/portlet/
        0  12-15-12 01:56   diffs/portal-impl/src/com/liferay/portlet/announcements/
        0  12-15-12 01:56   diffs/portal-impl/src/com/liferay/portlet/announcements/service/
        0  12-15-12 01:56   diffs/portal-impl/src/com/liferay/portlet/announcements/service/impl/
     1058  12-15-12 01:56   diffs/portal-impl/src/com/liferay/portlet/announcements/service/impl/AnnouncementsEntryServiceImpl.java.diff
        0  12-15-12 01:56   diffs/portal-impl/src/com/liferay/portlet/announcements/service/http/
     1240  12-15-12 01:56   diffs/portal-impl/src/com/liferay/portlet/announcements/service/http/AnnouncementsEntryServiceSoap.java.diff
     3031  12-15-12 01:56   diffs/portal-impl/src/com/liferay/portlet/announcements/service/http/AnnouncementsEntryServiceHttp.java.diff
        0  12-15-12 01:56   diffs/portal-impl/src/com/liferay/portlet/announcements/action/
     1077  12-15-12 01:56   diffs/portal-impl/src/com/liferay/portlet/announcements/action/ActionUtil.java.diff
        0  12-15-12 01:56   diffs/portal-service/
        0  12-15-12 01:56   diffs/portal-service/src/
        0  12-15-12 01:56   diffs/portal-service/src/com/
        0  12-15-12 01:56   diffs/portal-service/src/com/liferay/
        0  12-15-12 01:56   diffs/portal-service/src/com/liferay/portlet/
        0  12-15-12 01:56   diffs/portal-service/src/com/liferay/portlet/announcements/
        0  12-15-12 01:56   diffs/portal-service/src/com/liferay/portlet/announcements/service/
     1567  12-15-12 01:56   diffs/portal-service/src/com/liferay/portlet/announcements/service/AnnouncementsEntryService.java.diff
     1045  12-15-12 01:56   diffs/portal-service/src/com/liferay/portlet/announcements/service/AnnouncementsEntryServiceUtil.java.diff
     1072  12-15-12 01:56   diffs/portal-service/src/com/liferay/portlet/announcements/service/AnnouncementsEntryServiceWrapper.java.diff
      607  12-15-12 01:58   fixpack_documentation.xml
        0  12-15-12 01:58   jdk5/
        0  12-15-12 01:58   jdk5/WAR_PATH/
        0  12-15-12 01:58   jdk5/WAR_PATH/WEB-INF/
        0  12-15-12 01:58   jdk5/WAR_PATH/WEB-INF/lib/
        0  12-15-12 01:58   jdk5/WAR_PATH/WEB-INF/lib/portal-impl.jar/
        0  12-15-12 01:58   jdk5/WAR_PATH/WEB-INF/lib/portal-impl.jar/com/
        0  12-15-12 01:58   jdk5/WAR_PATH/WEB-INF/lib/portal-impl.jar/com/liferay/
        0  12-15-12 01:58   jdk5/WAR_PATH/WEB-INF/lib/portal-impl.jar/com/liferay/portlet/
        0  12-15-12 01:58   jdk5/WAR_PATH/WEB-INF/lib/portal-impl.jar/com/liferay/portlet/announcements/
        0  12-15-12 01:58   jdk5/WAR_PATH/WEB-INF/lib/portal-impl.jar/com/liferay/portlet/announcements/service/
        0  12-15-12 01:58   jdk5/WAR_PATH/WEB-INF/lib/portal-impl.jar/com/liferay/portlet/announcements/service/impl/
     4696  12-15-12 01:58   jdk5/WAR_PATH/WEB-INF/lib/portal-impl.jar/com/liferay/portlet/announcements/service/impl/AnnouncementsEntryServiceImpl.class
        0  12-15-12 01:58   jdk5/WAR_PATH/WEB-INF/lib/portal-impl.jar/com/liferay/portlet/announcements/service/http/
     5609  12-15-12 01:58   jdk5/WAR_PATH/WEB-INF/lib/portal-impl.jar/com/liferay/portlet/announcements/service/http/AnnouncementsEntryServiceHttp.class
     3505  12-15-12 01:58   jdk5/WAR_PATH/WEB-INF/lib/portal-impl.jar/com/liferay/portlet/announcements/service/http/AnnouncementsEntryServiceSoap.class
        0  12-15-12 01:58   jdk5/WAR_PATH/WEB-INF/lib/portal-impl.jar/com/liferay/portlet/announcements/action/
     1466  12-15-12 01:58   jdk5/WAR_PATH/WEB-INF/lib/portal-impl.jar/com/liferay/portlet/announcements/action/ActionUtil.class
        0  12-15-12 01:58   jdk5/GLOBAL_LIB_PATH/
        0  12-15-12 01:58   jdk5/GLOBAL_LIB_PATH/portal-service.jar/
        0  12-15-12 01:58   jdk5/GLOBAL_LIB_PATH/portal-service.jar/com/
        0  12-15-12 01:58   jdk5/GLOBAL_LIB_PATH/portal-service.jar/com/liferay/
        0  12-15-12 01:58   jdk5/GLOBAL_LIB_PATH/portal-service.jar/com/liferay/portlet/
        0  12-15-12 01:58   jdk5/GLOBAL_LIB_PATH/portal-service.jar/com/liferay/portlet/announcements/
        0  12-15-12 01:58   jdk5/GLOBAL_LIB_PATH/portal-service.jar/com/liferay/portlet/announcements/service/
     1449  12-15-12 01:58   jdk5/GLOBAL_LIB_PATH/portal-service.jar/com/liferay/portlet/announcements/service/AnnouncementsEntryService.class
     3163  12-15-12 01:58   jdk5/GLOBAL_LIB_PATH/portal-service.jar/com/liferay/portlet/announcements/service/AnnouncementsEntryServiceUtil.class
     3639  12-15-12 01:58   jdk5/GLOBAL_LIB_PATH/portal-service.jar/com/liferay/portlet/announcements/service/AnnouncementsEntryServiceWrapper.class
        0  12-15-12 01:56   jdk6/
        0  12-15-12 01:56   jdk6/WAR_PATH/
        0  12-15-12 01:56   jdk6/WAR_PATH/WEB-INF/
        0  12-15-12 01:56   jdk6/WAR_PATH/WEB-INF/lib/
        0  12-15-12 01:56   jdk6/WAR_PATH/WEB-INF/lib/portal-impl.jar/
        0  12-15-12 01:56   jdk6/WAR_PATH/WEB-INF/lib/portal-impl.jar/com/
        0  12-15-12 01:56   jdk6/WAR_PATH/WEB-INF/lib/portal-impl.jar/com/liferay/
        0  12-15-12 01:56   jdk6/WAR_PATH/WEB-INF/lib/portal-impl.jar/com/liferay/portlet/
        0  12-15-12 01:56   jdk6/WAR_PATH/WEB-INF/lib/portal-impl.jar/com/liferay/portlet/announcements/
        0  12-15-12 01:56   jdk6/WAR_PATH/WEB-INF/lib/portal-impl.jar/com/liferay/portlet/announcements/service/
        0  12-15-12 01:56   jdk6/WAR_PATH/WEB-INF/lib/portal-impl.jar/com/liferay/portlet/announcements/service/impl/
     4696  12-15-12 01:56   jdk6/WAR_PATH/WEB-INF/lib/portal-impl.jar/com/liferay/portlet/announcements/service/impl/AnnouncementsEntryServiceImpl.class
        0  12-15-12 01:56   jdk6/WAR_PATH/WEB-INF/lib/portal-impl.jar/com/liferay/portlet/announcements/service/http/
     5609  12-15-12 01:56   jdk6/WAR_PATH/WEB-INF/lib/portal-impl.jar/com/liferay/portlet/announcements/service/http/AnnouncementsEntryServiceHttp.class
     3505  12-15-12 01:56   jdk6/WAR_PATH/WEB-INF/lib/portal-impl.jar/com/liferay/portlet/announcements/service/http/AnnouncementsEntryServiceSoap.class
        0  12-15-12 01:56   jdk6/WAR_PATH/WEB-INF/lib/portal-impl.jar/com/liferay/portlet/announcements/action/
     1466  12-15-12 01:56   jdk6/WAR_PATH/WEB-INF/lib/portal-impl.jar/com/liferay/portlet/announcements/action/ActionUtil.class
        0  12-15-12 01:56   jdk6/GLOBAL_LIB_PATH/
        0  12-15-12 01:56   jdk6/GLOBAL_LIB_PATH/portal-service.jar/
        0  12-15-12 01:56   jdk6/GLOBAL_LIB_PATH/portal-service.jar/com/
        0  12-15-12 01:56   jdk6/GLOBAL_LIB_PATH/portal-service.jar/com/liferay/
        0  12-15-12 01:56   jdk6/GLOBAL_LIB_PATH/portal-service.jar/com/liferay/portlet/
        0  12-15-12 01:56   jdk6/GLOBAL_LIB_PATH/portal-service.jar/com/liferay/portlet/announcements/
        0  12-15-12 01:56   jdk6/GLOBAL_LIB_PATH/portal-service.jar/com/liferay/portlet/announcements/service/
     1449  12-15-12 01:56   jdk6/GLOBAL_LIB_PATH/portal-service.jar/com/liferay/portlet/announcements/service/AnnouncementsEntryService.class
     3163  12-15-12 01:56   jdk6/GLOBAL_LIB_PATH/portal-service.jar/com/liferay/portlet/announcements/service/AnnouncementsEntryServiceUtil.class
     3639  12-15-12 01:56   jdk6/GLOBAL_LIB_PATH/portal-service.jar/com/liferay/portlet/announcements/service/AnnouncementsEntryServiceWrapper.class
        0  12-15-12 01:56   src/
        0  12-15-12 01:56   src/portal-impl/
        0  12-15-12 01:56   src/portal-impl/src/
        0  12-15-12 01:56   src/portal-impl/src/com/
        0  12-15-12 01:56   src/portal-impl/src/com/liferay/
        0  12-15-12 01:56   src/portal-impl/src/com/liferay/portlet/
        0  12-15-12 01:56   src/portal-impl/src/com/liferay/portlet/announcements/
        0  12-15-12 01:56   src/portal-impl/src/com/liferay/portlet/announcements/service/
        0  12-15-12 01:56   src/portal-impl/src/com/liferay/portlet/announcements/service/impl/
     5272  12-15-12 01:56   src/portal-impl/src/com/liferay/portlet/announcements/service/impl/AnnouncementsEntryServiceImpl.java
        0  12-15-12 01:56   src/portal-impl/src/com/liferay/portlet/announcements/service/http/
     5593  12-15-12 01:56   src/portal-impl/src/com/liferay/portlet/announcements/service/http/AnnouncementsEntryServiceSoap.java
     8760  12-15-12 01:56   src/portal-impl/src/com/liferay/portlet/announcements/service/http/AnnouncementsEntryServiceHttp.java
        0  12-15-12 01:56   src/portal-impl/src/com/liferay/portlet/announcements/action/
     1496  12-15-12 01:56   src/portal-impl/src/com/liferay/portlet/announcements/action/ActionUtil.java
        0  12-15-12 01:56   src/portal-service/
        0  12-15-12 01:56   src/portal-service/src/
        0  12-15-12 01:56   src/portal-service/src/com/
        0  12-15-12 01:56   src/portal-service/src/com/liferay/
        0  12-15-12 01:56   src/portal-service/src/com/liferay/portlet/
        0  12-15-12 01:56   src/portal-service/src/com/liferay/portlet/announcements/
        0  12-15-12 01:56   src/portal-service/src/com/liferay/portlet/announcements/service/
     4536  12-15-12 01:56   src/portal-service/src/com/liferay/portlet/announcements/service/AnnouncementsEntryServiceWrapper.java
     4864  12-15-12 01:56   src/portal-service/src/com/liferay/portlet/announcements/service/AnnouncementsEntryServiceUtil.java
     4012  12-15-12 01:56   src/portal-service/src/com/liferay/portlet/announcements/service/AnnouncementsEntryService.java
 --------                   -------
   160761                   134 files

References

 

How to I trace user login issues in Liferay Portal 6.0 and 6.1?

Technical Blogs June 24, 2013 By Tim Telcik

Overview

If you are facing Liferay Portal login issues (eg. unexpected user session timeouts, unexpected double login prompts), you can perform high level tracing by enabling logging in the primary request dispatcher (the Main Servlet).

For the following trace steps, we will use a Liferay Portal 6.1 + Tomcat bundle.

Trace Steps

Step 1 - Enable Main Servlet Logging

  • Login as admin user (i.e. user with Admin role).
  • Navigate to "Control Panel > Server Administration > Logging"
  • Add or update category "com.liferay.portal.servlet.MainServlet" with level DEBUG.
  • Logout as admin user.

Step 2 - Login as Test User

  • Login as test user (i.e. user exhibiting user session issues).

Step 3 - Review Apache Tomcat Logs

Step 3.1 - Sample Valid User Session

2013-06-19 11:44:16,392 DEBUG [http-bio-8080-exec-5][MainServlet:381] Process service request
2013-06-19 11:44:16,393 DEBUG [http-bio-8080-exec-5][MainServlet:401] Get company id
2013-06-19 11:44:16,393 DEBUG [http-bio-8080-exec-5][MainServlet:428] Set portal port
2013-06-19 11:44:16,394 DEBUG [http-bio-8080-exec-5][MainServlet:434] Check variables
2013-06-19 11:44:16,394 DEBUG [http-bio-8080-exec-5][MainServlet:443] Handle non-serializable request
2013-06-19 11:44:16,394 DEBUG [http-bio-8080-exec-5][MainServlet:447] Encrypt request
2013-06-19 11:44:16,394 DEBUG [http-bio-8080-exec-5][MainServlet:457] Protect request
2013-06-19 11:44:16,395 DEBUG [http-bio-8080-exec-5][MainServlet:463] Set principal
2013-06-19 11:44:16,395 DEBUG [http-bio-8080-exec-5][MainServlet:472] Authenticate user id 10196 and remote user 10196
2013-06-19 11:44:16,395 DEBUG [http-bio-8080-exec-5][MainServlet:480] Authenticated user id 10196
2013-06-19 11:44:16,395 DEBUG [http-bio-8080-exec-5][MainServlet:488] Set session thread local
2013-06-19 11:44:16,395 DEBUG [http-bio-8080-exec-5][MainServlet:494] Process service pre events
2013-06-19 11:44:16,408 DEBUG [http-bio-8080-exec-5][MainServlet:530] Call parent service
2013-06-19 11:44:16,803 DEBUG [http-bio-8080-exec-5][MainServlet:537] Process service post events

NOTE: The user id exists in this user session.

Step 3.2 - Sample Invalid User Session

2013-06-19 11:44:16,392 DEBUG [http-bio-8080-exec-5][MainServlet:381] Process service request
2013-06-19 11:44:16,393 DEBUG [http-bio-8080-exec-5][MainServlet:401] Get company id
2013-06-19 11:44:16,393 DEBUG [http-bio-8080-exec-5][MainServlet:428] Set portal port
2013-06-19 11:44:16,394 DEBUG [http-bio-8080-exec-5][MainServlet:434] Check variables
2013-06-19 11:44:16,394 DEBUG [http-bio-8080-exec-5][MainServlet:443] Handle non-serializable request
2013-06-19 11:44:16,394 DEBUG [http-bio-8080-exec-5][MainServlet:447] Encrypt request
2013-06-19 11:44:16,394 DEBUG [http-bio-8080-exec-5][MainServlet:457] Protect request
2013-06-19 11:44:16,395 DEBUG [http-bio-8080-exec-5][MainServlet:463] Set principal
2013-06-19 11:44:16,395 DEBUG [http-bio-8080-exec-5][MainServlet:472] Authenticate user id 0 and remote user null
2013-06-19 11:44:16,395 DEBUG [http-bio-8080-exec-5][MainServlet:480] Authenticated user id 0
2013-06-19 11:44:16,395 DEBUG [http-bio-8080-exec-5][MainServlet:488] Set session thread local
2013-06-19 11:44:16,395 DEBUG [http-bio-8080-exec-5][MainServlet:494] Process service pre events
2013-06-19 11:44:16,408 DEBUG [http-bio-8080-exec-5][MainServlet:530] Call parent service
2013-06-19 11:44:16,803 DEBUG [http-bio-8080-exec-5][MainServlet:537] Process service post events


NOTE: The user id is missing in this user session.

Step 4 - Disable Main Servlet Logging

After reviewing the logs, disable logging.

  • Login as admin user (i.e. user with Admin role).
  • Navigate to "Control Panel > Server Administration > Logging"
  • Update category "com.liferay.portal.servlet.MainServlet" with level INFO.
  • Logout as admin user.

Solution Checklist

  • Review DNS configuration for web servers when round-robin dispatch strategy is active.
  • Review DNS configuration for web servers (eg. Apache HTTPD).
  • Review session replication for load balancer, web servers or app servers, if user sessions are spanning nodes in a cluster.
  • Review Liferay Portal property "web.server.host" and ensure it matches the required web server name.
  • Add Liferay Portal property "web.server.display.node" to portal-ext.properties to review node name for active web server.
  • Review Liferay Portal session property "session.timeout".
  • Use HTTP traffic monitor (eg. Firefox + Live HTTP Headers plugin).

 

How to verify data in Liferay Portal 6.0 or 6.1

Technical Blogs June 11, 2013 By Tim Telcik

Overview

Liferay Portal 6.0 and 6.1 provide a data verification mechanism which can be used to resolve various data integrity issues, including the following data sets:

  • Asset
  • Blogs
  • Bookmarks
  • Calendar
  • Document Library
  • Group
  • Journal
  • Layout
  • Message Boards
  • Organization
  • Permission
  • Resource Permissions
  • Role
  • Social
  • User
  • Wiki

Data Verification Usage

Data verification is configured using 2 properties:

  • verify.processes - define verification suite or process to run (fully qualified Java class name)
  • verify.frequency - define frequency for running verification suite or process (-1, 1, 0).

The default values for these properties are listed below.

One approach to the data verification process is listed below:

  1. Enable DEBUG logging for data verification processes to monitor progress and potential issues.
  2. Enable data verification process suite (or individual process)
  3. Start Liferay Portal to trigger data verification process(es)
  4. Review the data verification suite log entries for potential issues.
  5. Shutdown Liferay Portal
  6. Disable data verification process
  7. Disable DEBUG logging for data verification processes

Default Data Verification Properties

FILE: portal-impl.jar!portal.properties

##
## Verify
##

    #
    # Input a list of comma delimited class name that implement
    # com.liferay.portal.integrity.VerifyProcess. These classes will run on
    # startup to verify and fix any integrity problems found in the database.
    #
    verify.processes=com.liferay.portal.verify.VerifyProcessSuite

    #
    # Specify the frequency for verifying the integrity of the database.
    #
    # Constants in VerifyProcess:
    #     public static final int ALWAYS = -1;
    #     public static final int NEVER = 0;
    #     public static final int ONCE = 1;
    #
    verify.frequency=1

 

Enable Data Verification

To enable data verification, update the "verify.frequency" property.

NOTE: Data verification is configured to only run once, as per the default properties.

NOTE: The default data verification process is the Verify Process Suite, which in turn runs many verification processes.

Edit "PORTAL_HOME/portal-ext.properties".

Update property "verify.frequency" to always run.

   verify.frequency=-1

Enable DEBUG level logging for category "com.liferay.portal.verify" package to show additional details.

Disable Data Verification

To disable data verification, update the "verify.frequency" property.

Edit "PORTAL_HOME/portal-ext.properties".

Update property "verify.frequency" to never run.

   verify.frequency=0

Sample Data Verification Run

Sample Data Verification Environment

Host O/S: Apple Mac OS X (10.8.4)

Database: MySQL 5.5.x

Liferay Portal: Liferay Portal 6.1. EE GA2 (6.1.20)

Liferay Portal Patches: announcements-1-6120, core-5-6120, documents-and-media-2-6120, dynamic-data-lists-1-6120, hotfix-55-6120, hotfix-56-6120, message-boards-1-6120, plugin-deployment-1-6120, security-hotfix-3-6120, service-builder-1-6120, tags-and-categories-1-6120, upgrade-2-6120

Sample Data Verification Log

Log File: TOMCAT/logs/catalina.out

Starting Liferay Portal Enterprise Edition 6.1.20 EE (Paton / Build 6120 / July 31, 2012)
11:41:48,604 INFO  [pool-2-thread-1][BaseDB:455] Database does not support case sensitive queries
11:41:50,018 DEBUG [pool-2-thread-1][VerifyProcessUtil:99] Initializing verification com.liferay.portal.verify.VerifyProcessSuite
11:41:50,044 DEBUG [pool-2-thread-1][VerifyProcessUtil:107] Running verification com.liferay.portal.verify.VerifyProcessSuite
11:41:50,050 INFO  [pool-2-thread-1][VerifyProcess:55] Verifying com.liferay.portal.verify.VerifyProcessSuite
11:41:50,052 INFO  [pool-2-thread-1][VerifyProcess:55] Verifying com.liferay.portal.verify.VerifyProperties
11:41:50,077 INFO  [pool-2-thread-1][VerifyProcess:55] Verifying com.liferay.portal.verify.VerifyDB2
11:41:50,078 INFO  [pool-2-thread-1][VerifyProcess:55] Verifying com.liferay.portal.verify.VerifyMySQL
11:41:58,627 INFO  [pool-2-thread-1][VerifyProcess:55] Verifying com.liferay.portal.verify.VerifyOracle
11:41:58,631 INFO  [pool-2-thread-1][VerifyProcess:55] Verifying com.liferay.portal.verify.VerifySQLServer
11:41:58,631 INFO  [pool-2-thread-1][VerifyProcess:55] Verifying com.liferay.portal.verify.VerifyCounter
11:41:58,710 INFO  [pool-2-thread-1][VerifyProcess:55] Verifying com.liferay.portal.verify.VerifyUUID
11:41:58,739 INFO  [pool-2-thread-1][VerifyProcess:55] Verifying com.liferay.portal.verify.VerifyPermission
11:42:09,396 INFO  [pool-2-thread-1][VerifyProcess:55] Verifying com.liferay.portal.verify.VerifyRole
11:42:09,402 INFO  [pool-2-thread-1][VerifyProcess:55] Verifying com.liferay.portal.verify.VerifyAsset
11:42:09,421 INFO  [pool-2-thread-1][UpgradeProcess:175] Upgrading com.liferay.portal.upgrade.util.UpgradeAssetPublisherManualEntries
11:42:09,702 INFO  [pool-2-thread-1][VerifyProcess:55] Verifying com.liferay.portal.verify.VerifyBlogs
11:42:09,778 DEBUG [pool-2-thread-1][VerifyBlogs:35] Processing 0 entries with no asset
11:42:09,778 DEBUG [pool-2-thread-1][VerifyBlogs:54] Assets verified for entries
11:42:09,779 INFO  [pool-2-thread-1][VerifyProcess:55] Verifying com.liferay.portal.verify.VerifyBookmarks
11:42:09,783 DEBUG [pool-2-thread-1][VerifyBookmarks:35] Processing 0 entries with no asset
11:42:09,784 DEBUG [pool-2-thread-1][VerifyBookmarks:54] Assets verified for entries
11:42:09,784 INFO  [pool-2-thread-1][VerifyProcess:55] Verifying com.liferay.portal.verify.VerifyCalendar
11:42:09,801 DEBUG [pool-2-thread-1][VerifyCalendar:73] Processing 0 events with no asset
11:42:09,801 DEBUG [pool-2-thread-1][VerifyCalendar:91] Assets verified for events
11:42:10,039 INFO  [pool-2-thread-1][VerifyProcess:55] Verifying com.liferay.portal.verify.VerifyDocumentLibrary
11:42:10,386 DEBUG [pool-2-thread-1][VerifyDocumentLibrary:169] Processing 0 file entries with invalid version
11:42:10,387 DEBUG [pool-2-thread-1][VerifyDocumentLibrary:181] Fixed misversioned file entries
11:42:10,838 DEBUG [pool-2-thread-1][VerifyDocumentLibrary:128] Processing 464 file entries with application/octet-stream
11:42:12,250 DEBUG [pool-2-thread-1][VerifyDocumentLibrary:160] Fixed file entries with invalid mime types
11:42:12,356 DEBUG [pool-2-thread-1][VerifyDocumentLibrary:240] Processing 0 file entries with no group
11:42:12,357 DEBUG [pool-2-thread-1][VerifyDocumentLibrary:261] Removed orphaned file entries
11:42:12,905 DEBUG [pool-2-thread-1][VerifyDocumentLibrary:270] Processing 0 file entries with no asset
11:42:12,905 DEBUG [pool-2-thread-1][VerifyDocumentLibrary:296] Assets verified for file entries
11:42:12,906 INFO  [pool-2-thread-1][VerifyProcess:55] Verifying com.liferay.portal.verify.VerifyGroup
11:42:13,009 INFO  [pool-2-thread-1][VerifyProcess:55] Verifying com.liferay.portal.verify.VerifyJournal
11:42:13,210 DEBUG [pool-2-thread-1][VerifyJournal:76] Permissions verified for structures
11:42:13,361 DEBUG [pool-2-thread-1][VerifyJournal:91] Permissions verified for templates
11:42:41,509 DEBUG [pool-2-thread-1][VerifyJournal:157] Permissions and assets verified for articles
11:42:45,634 INFO  [pool-2-thread-1][VerifyProcess:55] Verifying com.liferay.portal.verify.VerifyLayout
11:42:49,085 INFO  [pool-2-thread-1][VerifyProcess:55] Verifying com.liferay.portal.verify.VerifyMessageBoards
11:42:49,106 DEBUG [pool-2-thread-1][VerifyMessageBoards:110] Processing 34 categories for statistics accuracy
11:42:50,025 DEBUG [pool-2-thread-1][VerifyMessageBoards:135] Statistics verified for categories
11:42:53,546 DEBUG [pool-2-thread-1][VerifyMessageBoards:144] Processing 39028 threads for statistics accuracy
11:43:26,735 DEBUG [pool-2-thread-1][VerifyMessageBoards:161] Statistics verified for threads
11:43:27,209 DEBUG [pool-2-thread-1][VerifyMessageBoards:50] Processing 0 messages with no asset
11:43:27,210 DEBUG [pool-2-thread-1][VerifyMessageBoards:69] Assets verified for messages
11:43:27,249 DEBUG [pool-2-thread-1][VerifyMessageBoards:77] Processing 3 threads with no asset
11:43:27,253 WARN  [pool-2-thread-1][UserPersistenceImpl:965] No User exists with the primary key 80028
11:43:27,255 WARN  [pool-2-thread-1][VerifyMessageBoards:92] Unable to update asset for thread 96224: No User exists with the primary key 80028
11:43:27,260 WARN  [pool-2-thread-1][UserPersistenceImpl:965] No User exists with the primary key 80028
11:43:27,261 WARN  [pool-2-thread-1][VerifyMessageBoards:92] Unable to update asset for thread 96234: No User exists with the primary key 80028
11:43:27,265 WARN  [pool-2-thread-1][UserPersistenceImpl:965] No User exists with the primary key 80028
11:43:27,265 WARN  [pool-2-thread-1][VerifyMessageBoards:92] Unable to update asset for thread 129431: No User exists with the primary key 80028
11:43:27,266 DEBUG [pool-2-thread-1][VerifyMessageBoards:100] Assets verified for threads
11:43:27,267 INFO  [pool-2-thread-1][VerifyProcess:55] Verifying com.liferay.portal.verify.VerifyOrganization
11:43:27,269 INFO  [pool-2-thread-1][VerifyProcess:55] Verifying com.liferay.portal.verify.VerifyResourcePermissions
11:43:27,270 INFO  [pool-2-thread-1][VerifyProcess:55] Verifying com.liferay.portal.verify.VerifySocial
11:43:27,271 INFO  [pool-2-thread-1][VerifyProcess:55] Verifying com.liferay.portal.verify.VerifyUser
11:43:27,311 INFO  [pool-2-thread-1][VerifyProcess:55] Verifying com.liferay.portal.verify.VerifyWiki
11:43:29,693 DEBUG [pool-2-thread-1][VerifyWiki:34] Processing 0 pages with no asset
11:43:29,694 DEBUG [pool-2-thread-1][VerifyWiki:52] Assets verified for pages
11:43:29,695 INFO  [pool-2-thread-1][VerifyProcess:55] Verifying com.liferay.portal.verify.VerifyWorkflow
11:43:29,696 DEBUG [pool-2-thread-1][VerifyProcessUtil:113] Finished verification com.liferay.portal.verify.VerifyProcessSuite

References

How to check Liferay Portal plugin deployment issues

Technical Blogs May 13, 2013 By Tim Telcik

Overview

A common problem developers and system admins face is tracking down why their Liferay Portal plugins fail to deploy to their Java web server.

There are many reasons why Liferay Portal plugins fail to deploy. Please refer to the checklist below for possible causes and solutions.

Environment

We will assume a simple test environment of Liferay Portal and Apache Tomcat:

  • Web Server Host: Any flavour of Unix, Linux or Windows NT
  • Liferay Portal: Liferay Portal 5.2.x, 6.0.x, 6.1.x
  • Web App Server: Apache Tomcat 6.0.x, 7.0.x

The author's test environments for preparing the checklist were:

  • Amazon EC2/AMI + Liferay Portal 6.1 EE GA2 (6.1.20) + Apache Tomcat 7.0.27
  • Mac OS X (10.8.3) + Liferay Portal 6.1 EE GA2 (6.1.20) + Apache Tomcat 7.0.27

Checklist

Purge Apache Tomcat Temp and Work Folders

Stale Apache temp and work files can cause various issues.

e.g. Unix/Linux/MacOSX

% cd LIFERAY_HOME/tomcat-xxx/
% rm -rf temp
% rm -rf work

NOTE: If you use the "rm" command with the recursive switch as "rm -rf", be very careful to only delete the target folder.

Review Apache Tomcat and Liferay Portal Log Files

  • Are any INFO, WARN or ERROR messages logged in the Liferay or Catalina log files ? There is often a clue in the log entries.

Review Liferay Portal Plugin Config Files

  • Check the Liferay Portal config files (*.xml, *.properties). Are the config files suitable for your target environment (i.e. is it an LP 5.2.x config file when an LP 6.1.x config file is expected) ?
  • Do not use both plugin package XML and plugin package properties file in your plugin package (*.war). Use plugin-package.properties file in favour of plugin-package.xml config file. If you use both, you must keep them in sync. Better to use only properties and allow Liferay Portal to build the XML during plugin auto deployment.

Review Timezones

NOTE: Assuming the local timezone is GMT+8 (Australia/Perth).

  • Is the user.timezone property in your Tomcat environment correct ?
    See TOMCAT_HOME/bin/setenv.sh
    ... -Duser.timezone=GMT ...
  • Is the timezone correct for your host web server ? If the target web server has a local time behind the time stamps for files in your Liferay Portal plugin (eg. my-portal.war, my-theme.war), the plugin may not deploy. Apache Tomcat uses a simple time-based strategy to deploy new web apps. If the WAR files are newer than Tomcat's local time, it may ignore the web app (*.war) files. In this case, it may ignore Liferay Portal plugins.
  • Is the Tomcat user.timezone property (above) the same as the web server host time zones (eg. are they both GMT)

Review File Ownership

  • Ensure the Liferay Portal plugin files (*.war) have the same user and group ownership as the Tomcat process. For example, if the Tomcat process is started by user liferay with group liferay, but the plugins files, such as my-portal.war and my-theme.war, are owned by user tim.telcik and group tim.telcik, Tomcat may not be able to deploy the plugin file(s).

How to fix popup page menu links in Liferay Portal 6.1 EE GA2 for Internet Explorer 9 on Windows 7

Technical Blogs April 27, 2013 By Tim Telcik

Environment

  • Host Environment: MS Windows 7
  • Web Browser: MS Internet Explorer 9
  • Liferay Portal: 6.1 CE GA2 (6.1.1), 6.1 EE GA2 (6.1.20)
     

Issues

  • Popup page menu links for nested pages overlap portlet borders.

  • Popup page menu links disappear when the mouse hovers over them.

Solution(s)

  • Ensure intranet "Compatibility View” mode is disabled.

NOTE: The "Compatibility View" mode prevents the page from rendering correctly.

(i.e. HTML not rendered as expected, JavaScript functions do not behave)

How to reset the password for a Liferay Portal user

Technical Blogs April 27, 2013 By Tim Telcik

Overview

If you need to reset the password for a Liferay Portal user in the database, refer to the following test steps.

Test Environment

These steps assume the following:

  • We are connecting to a MySQL database server.

  • User is stored in Liferay Portal database.

  • We are using default auth (not LDAP or SSO).

Test Steps

1/ Connect to Liferay Portal database schema


2/ Identify user who forgot their password

e.g.

select * from User_;


e.g.

select userId, screenName from User_;

Scan rows/columns for user by name or email address.


Locate target entry by "userId" or "screenName".

We will assume the user ID for our user is "10178" and screen name is "test".


3/ Confirm user by selecting user by their user ID or screen name

e.g.

select * from User_ where userId='10178';


eg.

select * from User_ where screenName='test';

 

4/  Reset password to default for user by user ID


We will reset the password to default "test".

e.g.

update User_
set password_='test', passwordEncrypted=0, passwordReset=0
where userId='10178';

e.g.

update User_
set password_='test', passwordEncrypted=0, passwordReset=0
where screenName='test';

 

5/ Commit user password change

e.g.

commit;

 

6/ Confirm new user password by selecting user using their user ID.


e.g.

select * from User_ where userId='10178';

e.g.

select * from User_ where screenName='test';

 

7/ Clear Liferay Portal database cache and/or restart Liferay Portal server

Clear portal caches.

8/ Login as user and user, then use Control Panel to reset password to something else


9/ Change the user ID and default password to suit.
 

Showing 14 results.
Items 20
of 1