Foren

Add Captcha In Sign in Portlet

thumbnail
Puneet Upadhyay, geändert vor 12 Jahren.

Add Captcha In Sign in Portlet

Regular Member Beiträge: 234 Beitrittsdatum: 22.10.11 Neueste Beiträge
Please tell me how to add captcha in sign in portlet.
thumbnail
Mani kandan, geändert vor 12 Jahren.

RE: Add Captcha In Sign in Portlet

Expert Beiträge: 492 Beitrittsdatum: 15.09.10 Neueste Beiträge
You can get it here blog

And you can get full coding here link
thumbnail
Puneet Upadhyay, geändert vor 12 Jahren.

RE: Add Captcha In Sign in Portlet

Regular Member Beiträge: 234 Beitrittsdatum: 22.10.11 Neueste Beiträge
Thanks Mani but i am unable to do this is sign in portlet.
will you please elaborate this???
thumbnail
Puneet Upadhyay, geändert vor 12 Jahren.

RE: Add Captcha In Sign in Portlet

Regular Member Beiträge: 234 Beitrittsdatum: 22.10.11 Neueste Beiträge
I am trying to attach captcha in sign in portlet but i am unable to do it.
Can anybody tell me the full procedure i mean steps. which jsp, and class i need to extend???
thumbnail
srikanth a, geändert vor 12 Jahren.

RE: Add Captcha In Sign in Portlet

Regular Member Beiträge: 144 Beitrittsdatum: 21.02.11 Neueste Beiträge
Hi Puneeth,
Please follow these below steps to create and validate the captcha. Hope it will help you.

Generate Captcha

In JSPPortlet class we need to add method serverResource - something like this:

public class CaptchaSamplePortlet extends JSPPortlet {
/** Serve Resource used for getting captcha
*
*/
@Override
public void serveResource(ResourceRequest resourceRequest,
ResourceResponse resourceResponse) throws IOException, PortletException {
try {
com.liferay.portal.kernel.captcha.CaptchaUtil.serveImage(resourceRequest, resourceResponse);
} catch (Exception e) {
log.error(e);
}
}
}
This method doing everything - generated captcha and returned it's content (with all required http-readers into response), as well as placed required data into session

Display Captcha

Now, to place captcha into jsp you need to place:

<portlet:resourceURL var="captchaURL"/>
<liferay-ui:captcha url="<%= captchaURL %>"/>

That will place captcha control and point it to our portlet resourceURL to generate image

Now, you will have captcha and field to enter captcha text on your form generated by these tags.

Validate Captcha

To check captcha add followed function in your action-handler in portlet-class:


private void checkCaptcha(PortletRequest request) throws Exception {
String enteredCaptchaText = ParamUtil.getString(request, "captchaText");

PortletSession session = request.getPortletSession();
String captchaText = getCaptchaValueFromSession(session);
if (Validator.isNull(captchaText)) {
throw new Exception("Internal Error! Captcha text not found in session");
}
if (!StringUtils.equals(captchaText, enteredCaptchaText)) {
throw new Exception("Invalid captcha text. Please reenter.");
}
}

private String getCaptchaValueFromSession(PortletSession session) {
Enumeration<String> atNames = session.getAttributeNames();
while (atNames.hasMoreElements()) {
String name = atNames.nextElement();
if (name.contains("CAPTCHA_TEXT")) {
return (String) session.getAttribute(name);
}
}
return null;
}
What is all - now, you can do everything - display captcha, enter value - and check it
thumbnail
Puneet Upadhyay, geändert vor 12 Jahren.

RE: Add Captcha In Sign in Portlet

Regular Member Beiträge: 234 Beitrittsdatum: 22.10.11 Neueste Beiträge
Hi Srikanth,

Thanks for nice explanation. But i am very new to liferay please specify all the steps
i.e. which jsp and which class i need to extend??
Thanks.
thumbnail
srikanth a, geändert vor 12 Jahren.

RE: Add Captcha In Sign in Portlet

Regular Member Beiträge: 144 Beitrittsdatum: 21.02.11 Neueste Beiträge
Hi,
In your portlet class overide the serveresource method add the above line inside serveresource.
Add 'Displaycapcha' code in the jsp where you want to see the captcha.
To validate the captcha add above lines of in the proceesaction of your portlet class.



regards
Sri.
thumbnail
Puneet Upadhyay, geändert vor 12 Jahren.

RE: Add Captcha In Sign in Portlet

Regular Member Beiträge: 234 Beitrittsdatum: 22.10.11 Neueste Beiträge
Ok Sri. I try this
thumbnail
chirag dashalaniya, geändert vor 11 Jahren.

RE: Add Captcha In Sign in Portlet

Regular Member Beiträge: 129 Beitrittsdatum: 21.12.11 Neueste Beiträge
Your blog link is very helpful to me and i got captcha image in my custom portlet ,but i want one Refresh Buttton beside catpch image and when user click only captch image reload though ajax

Give Me some Hint Regarding Ajax call in liferay 6.1
thumbnail
mohammad azaruddin, geändert vor 10 Jahren.

RE: Add Captcha In Sign in Portlet

Expert Beiträge: 492 Beitrittsdatum: 17.09.12 Neueste Beiträge
@chirag
Can you please share some hint or link ti create Captcha
thumbnail
chirag @ India, geändert vor 10 Jahren.

RE: Add Captcha In Sign in Portlet

Regular Member Beiträge: 129 Beitrittsdatum: 21.12.11 Neueste Beiträge
hi azaruddin ,

thanks for your reply .Actually i implemented captcha in custom portlet. now i want to refresh captcha field only not whole form .



I created captcha using below link..

http://www.emforge.net/web/akakunin/home/-/blogs/implement-captcha-in-liferay-portlet.

Thanks
Chirag
thumbnail
Manish Yadav, geändert vor 10 Jahren.

RE: Add Captcha In Sign in Portlet

Expert Beiträge: 493 Beitrittsdatum: 26.05.12 Neueste Beiträge
Hi Chirag ,

You can use below code for refresh captcha using jquery.

SCRIPT

<script>
jQuery("#refreshCaptchaActivity").click(function() {
	 jQuery(".captcha").attr("src", jQuery(".captcha").attr("src")+"&force=" + new Date().getMilliseconds());
	 return false;
}); 
</script>



HTML

<div>
				<liferay-ui:captcha url="<%=captchaURLForActivity%>" />
			<div style="float:left;padding:23px 0 0 5px;cursor: pointer;">
		<img id="refreshCaptchaActivity" src="<%= request.getContextPath()%>/images/refresh.png">
			</div>
</div>


Please let me know if you require more inputs
Regards
Manish Banwari lal Yadav
thumbnail
chirag @ India, geändert vor 10 Jahren.

RE: Add Captcha In Sign in Portlet

Regular Member Beiträge: 129 Beitrittsdatum: 21.12.11 Neueste Beiträge
hi manish ,

Thanks for your reply...its working for the first time when portlet render from add menu from dock ,but when i refresh page then it is not working..

First i have written alert for checking that function is call or not ,so first time it dialog display ,but not display after page refresh..

jQuery("#refreshCaptchaActivity").click(function()
		{
	alert("hii");
	jQuery(".captcha").attr("src", jQuery(".captcha").attr("src")+"&amp;force=" + new Date().getMilliseconds());
	return false;
		});


in liferay-portlet.xml setting..

<header-portlet-javascript>http://code.jquery.com/jquery-1.4.2.min.js</header-portlet-javascript>

all try with

<header-portlet-javascript>/js/jquery-1.7.1.min.js</header-portlet-javascript>

I have checked by inspect element there is loaded js..& also not getting any error like uncaught JQuery...

Thanks

HELP ME
John Carter, geändert vor 10 Jahren.

RE: Add Captcha In Sign in Portlet

Junior Member Beiträge: 53 Beitrittsdatum: 18.10.12 Neueste Beiträge
Hi chirag,
Simply I have written the below line in jsp and used the above code , just for checking and it working fine for me.

<script src="http://code.jquery.com/jquery-1.10.1.min.js"></script>
thumbnail
Manish Yadav, geändert vor 10 Jahren.

RE: Add Captcha In Sign in Portlet

Expert Beiträge: 493 Beitrittsdatum: 26.05.12 Neueste Beiträge
Hi Chriag,
if you not able to view alert box after page refresh it means javascript itself not working after page refresh. Because alert should display after clicking refreshCaptchaActivity id .

might be chance of conflict of refreshCaptchaActivity id

use below code

<div>
<liferay-ui:captcha url="<%=captchaURLForActivity%>"/>
<div style="float:left;padding:23px 0 0 5px;cursor: pointer;">
<img class="refreshCaptchaActivity" src="<%= request.getContextPath()%>/images/refresh.png">
</div>
</div>

JAVASCRIPT


jQuery(".refreshCaptchaActivity").click(function()
{
alert("hii");
jQuery(".captcha").attr("src", jQuery(".captcha").attr("src")+"&force=" + new Date().getMilliseconds());
return false;
});


Regards
Manish Banwari Lal Yadav
thumbnail
chirag @ India, geändert vor 10 Jahren.

RE: Add Captcha In Sign in Portlet

Regular Member Beiträge: 129 Beitrittsdatum: 21.12.11 Neueste Beiträge
hi manish,

thanks its working cheersemoticon
thumbnail
mohammad azaruddin, geändert vor 10 Jahren.

RE: Add Captcha In Sign in Portlet

Expert Beiträge: 492 Beitrittsdatum: 17.09.12 Neueste Beiträge
Hi try this recapcha..working on it
thumbnail
Szymon Gołębiewski, geändert vor 12 Jahren.

RE: Add Captcha In Sign in Portlet

Regular Member Beiträge: 246 Beitrittsdatum: 08.06.09 Neueste Beiträge
Puneet Upadhyay:
Please tell me how to add captcha in sign in portlet.

What Liferay version are you using? I think captcha and reCaptcha are in Liferay by default
thumbnail
Puneet Upadhyay, geändert vor 12 Jahren.

RE: Add Captcha In Sign in Portlet

Regular Member Beiträge: 234 Beitrittsdatum: 22.10.11 Neueste Beiträge
i am using 6.1 version.
thumbnail
Szymon Gołębiewski, geändert vor 12 Jahren.

RE: Add Captcha In Sign in Portlet

Regular Member Beiträge: 246 Beitrittsdatum: 08.06.09 Neueste Beiträge
Puneet Upadhyay:
i am using 6.1 version.



You can easily add reCaptcha to your system. In portal-ext.properties add this
captcha.engine.impl=com.liferay.portal.captcha.recaptcha.ReCaptchaImpl
and fill those two properties with keys you will get from reCaptcha website
captcha.engine.recaptcha.key.private=
captcha.engine.recaptcha.key.public=

And that is all
Vlad Kuzmyk, geändert vor 12 Jahren.

RE: Add Captcha In Sign in Portlet

New Member Beiträge: 10 Beitrittsdatum: 18.01.12 Neueste Beiträge
Yes, but for login screen you need to add a captcha control to the jsp page like it described here:
http://lanbuithe.blogspot.com/2011/08/enabling-captcha-in-login-portlet.html

Then you have to extend the ProcessAction to include captcha validation, otherwise it won't check what you entered.
Mustafa Yüceel, geändert vor 11 Jahren.

RE: Add Captcha In Sign in Portlet

New Member Beitrag: 1 Beitrittsdatum: 02.10.12 Neueste Beiträge
Puneet Upadhyay:
Please tell me how to add captcha in sign in portlet.


It is a bit old question but if someone needs, here is the explanations: http://mustafayuceel.com/my/how-to-activate-catpcha-recaptcha-in-liferay-6-login-page/
thumbnail
Szymon Gołębiewski, geändert vor 11 Jahren.

Automatyczna odpowiedź: [Liferay Forums][3. Development] RE: Add Captcha In

Regular Member Beiträge: 246 Beitrittsdatum: 08.06.09 Neueste Beiträge
W dniach 9 - 10 kwietnia przebywam poza firmą z ograniczonym dostępem do poczty elektronicznej. W sprawach pilnych proszę o kontakt z Gawłem Bogutą (gawel.boguta@eo.pl<mailto:gawel.boguta@eo.pl>).

Pozdrawiam,
Szymon Gołębiewski