Forums

Home » Liferay Portal » English » 3. Development

Combination View Flat View Tree View
Threads [ Previous | Next ]
toggle
William Gosse
Overiding LoginAction
December 6, 2011 7:02 AM
Answer

William Gosse

Rank: Regular Member

Posts: 108

Join Date: July 4, 2010

Recent Posts

I want overide com.liferay.portlet.login.action.LoginAction as part of an extension project I have.

I'm not sure how to designate my custom class in the portal.properties file. Is this possible?

Actually I just wound up replacing the LoginAction with one that had the additional code that I needed, instead of extending it with a custom child class.
Amos Fong
RE: Overiding LoginAction
December 6, 2011 2:26 PM
Answer

Amos Fong

LIFERAY STAFF

Rank: Liferay Legend

Posts: 1843

Join Date: October 7, 2008

Recent Posts

Hi Bill,

You have two options. You can use ext and override just that struts action in struts-config-ext.xml.
http://www.liferay.com/documentation/liferay-portal/6.0/development/-/ai/creating-an-ext-plugin

Or create an hook:
http://www.liferay.com/web/mika.koivisto/blog/-/blogs/7132115
Emilio Jose Lamas Fraga
RE: Overiding LoginAction
June 7, 2012 7:33 AM
Answer

Emilio Jose Lamas Fraga

Rank: Junior Member

Posts: 42

Join Date: November 29, 2011

Recent Posts

Hi Amos,

I don't know how to create a hook in the way Mika suggests for LoginAction; when I try to deploy, it throws a ClassNotFoundException because of the PortalAction that LoginAction extends.

I think this is because LoginAction belongs to portal-impl and it's not in the kernel package - like, for example, BaseStrutsAction -, so maybe in this case it's only possible to override LoginAction through EXT Plugin.

Am I Right? o I just making a mistake developing the hook?

Thanks!
Srikanth Konjarla
RE: Overiding LoginAction
June 7, 2012 7:39 AM
Answer

Srikanth Konjarla

Rank: Junior Member

Posts: 51

Join Date: October 24, 2008

Recent Posts

A sample to extend struts action might help.

http://svn.liferay.com/repos/public/plugins/trunk/hooks/sample-struts-action-hook/
Emilio Jose Lamas Fraga
RE: Overiding LoginAction
June 7, 2012 8:47 AM
Answer

Emilio Jose Lamas Fraga

Rank: Junior Member

Posts: 42

Join Date: November 29, 2011

Recent Posts

Hi Srikanth,

I've already try that example and it works fine. My problem is overriding the LoginAction class.

LoginAction extends com.liferay.portal.struts.PortletAction, and, when I try to deploy my ext plugin, it throws an exception because that class is not found.

Regards.
Matthew Stevenson
RE: Overiding LoginAction
June 19, 2012 8:00 AM
Answer

Matthew Stevenson

Rank: New Member

Posts: 12

Join Date: May 17, 2012

Recent Posts

Same issue experienced when trying to extend OpenIdAction in a hook:

1Caused by: java.lang.ClassNotFoundException: com.liferay.portlet.login.action.OpenIdAction
2    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1701)
3    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1546)
4    ... 31 more


Am using Liferay 6.1EE
Janus Godard
RE: Overiding LoginAction
October 3, 2013 7:39 AM
Answer

Janus Godard

Rank: New Member

Posts: 17

Join Date: August 1, 2013

Recent Posts

Emilio Jose Lamas Fraga:
Hi Srikanth,

I've already try that example and it works fine. My problem is overriding the LoginAction class.

LoginAction extends com.liferay.portal.struts.PortletAction, and, when I try to deploy my ext plugin, it throws an exception because that class is not found.

Regards.



Did you ever find a solution to that problem?

I'm having the same problem.

I'm working on adding captcha to the sign in page, as per:
https://www.liferay.com/community/forums/-/message_boards/message/11428960

The hook content is:
1<hook>
2    <custom-jsp-dir>/META-INF/custom_jsps</custom-jsp-dir>
3    <struts-action>
4        <struts-action-path>/login/login</struts-action-path>
5        <struts-action-impl>com.janus.portal.hook.login.captcha.CaptchaLoginAction</struts-action-impl>
6    </struts-action>
7</hook>

The class is CaptchaLoginAction extends com.liferay.portlet.login.action.LoginAction

The error is:
13:40:28,064 ERROR [pool-2-thread-56][HotDeployImpl:191] com.liferay.portal.kernel.deploy.hot.HotDeployException: Error registering hook for captcha-login-hook
[...]
Caused by: java.lang.ClassNotFoundException: com.liferay.portlet.login.action.LoginAction
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1711)
Jose Jimenez
RE: Overiding LoginAction
January 28, 2014 2:54 PM
Answer

Jose Jimenez

LIFERAY STAFF

Rank: Regular Member

Posts: 124

Join Date: August 22, 2012

Recent Posts

Hi Janus,
The LoginAction is under the portal classloader, just in portal-impl that is unavalaible from the hook classloader: https://github.com/liferay/liferay-portal/blob/master/portal-impl/src/com/liferay/portlet/login/action/LoginAction.java
In a hook you only can add/replace actions but not including portal-impl dependencies.
I hope this helps you.
Jose