Monday, April 2, 2012

Liferay Exapmle Websites





Security System in Liferay



false EN-US X-NONE X-NONE

Here’s a brief outline of how you can use your own security system in Liferay.
• Create your own PermissionChecker class that extends Liferay’s PermissionChecker class.
• Register this new class in portal.properties (or portal-ext.properties for the EXT environment) under the permissions.checker property.
• Override the hasUserPermission(…) method and the hasGuestPermission(…) method with your
own calls to your permission system.
• You can call the setValues(…) method to pull in parameters from the request object that your permission
checker might need (e.g., userId, projected, etc).
• You can call the resetValues(…) method to wipe out old parameters.
• Override the isAdmin(…) method.

IFrame in Liferay



false EN-US X-NONE X-NONE IFrame Control in Liferay



1. This portlet is defined in /portal-web/docroot/WEB-INF/portlet.xml.
<portlet>
<portlet-name>48</portlet-name>
<display-name>IFrame</display-name>
<portlet-class>com.liferay.portlet.IFramePortlet</portlet-class>
<expiration-cache>0</expiration-cache>
<supports>
<mime-type>text/html</mime-type>
<portlet-mode>edit</portlet-mode>
</supports>
<resource-bundle>com.liferay.portlet.StrutsResourceBundle</resource-bundle>
<portlet-preferences>
<preference>
<name>src</name>
<value>http://www.gfa.org</value>
</preference>
<preference>
<name>auth</name>
<value>false</value>
</preference>
<preference>
<name>auth-type</name>
<value>basic</value>
</preference>
<preference>
<name>form-method</name>
<value>post</value>
</preference>
<preference>
<name>user-name</name>
<value></value>
</preference>
<preference>
<name>password</name>
<value></value>
</preference>
<preference>
<name>hidden-variables</name>
<value>var1=hello;var2=world</value>
</preference>
</portlet-preferences>
<security-role-ref>
<role-name>Power User</role-name
</security-role-ref>
<security-role-ref>
<role-name>User</role-name>
</security-role-ref>
</portlet>
The unique id associated with this portlet is 48. The IFramePortlet class extends javax.portlet.GenericPortlet.
The source [http://content.liferay.com/document/api/portal-ejb/com/liferay/portlet/IFramePortlet.java.html] of
this class shows that this class prints an IFRAME tag that references an external site. This portlet is editable
and viewable by HTML browsers. The preferences bind the name src with the default value of http://www.gfa.org.
The auth value, if set to true, will attempt to authenticate the user to the external IFrame application. The authtype value can be set to basic or form. Basic authentication appends the login information to the URL and form
authentication requires a post to the external IFrame application. The form-method value can be set to get or
post. This is only used if you are using form authentication. The user-name value sets the user name for authentication. If you are using basic authentication, then you just need to set the user name. If using form authentication, you need to set the user name as a key value pair like acme_login=test@acme.com. The password
value sets the password for authentication. If using basic authentication, you just need the password. If using
form authentication, set the password as a key value pair like acme_password=password. The hidden-variables value is used for form authentication. Some forms require certain prepopulated fields in order to proceed
with authentication. Separate each key and value with a = and each key value pair with a ;. Users must have
either the Power User or User role to access this portlet. The roles can be changed at run time via the Admin
portlet.
2. The title is fetched by StrutsResourceBundle and is configured in /
portal-ejb/classes/content/Language.properties.
javax.portlet.title.48=IFrame
3. Additional definitions for this portlet are found in /portal-web/docroot/WEB-INF/liferay-portlet.xml.
<portlet id="48" struts-path="iframe" />
The id value in liferay-portlet.xml must match the portlet-name value in portlet.xml. The struts-path value
tells Struts that all requests starting with http://localhost/c/iframe/* are considered part of this portlet's scope.
See the Mail portlet to better understand this feature.
4. Display information for this portlet is found in /portal-web/docroot/WEB-INF/liferay-display.xml and makes it
possible for users to add this portlet via the personalize pages screen.
<category name="category.test">
<portlet id="47" />
<portlet id="48" />
</category>
When a user goes to personalize pages and clicks on a category to choose a portlet, the IFrame portlet is available under the category with the name that matches the key category.test. The value for this key is defined in /
portal-ejb/classes/content/Language.properties.
category.test=Test