Foren

Liferay Captcha validation

thumbnail
Rajesh Babu, geändert vor 14 Jahren.

Liferay Captcha validation

Regular Member Beiträge: 161 Beitrittsdatum: 08.02.10 Neueste Beiträge
Hi,

i had created a new signup portlet and need to use the liferay captcha in tat portlet.

for tat i had used the liferay captcha in my insert.jsp like below.


<%@ page contentType="text/html; charset=UTF-8" %>
<%@ include file="/WEB-INF/jsp/forgotpassword/include.jsp" %>

<%@ page import="javax.servlet.*"%>
<%@ page import="javax.servlet.http.*"%>
<%@ page import="javax.portlet.*"%>
<%@ page import="javax.portlet.ResourceRequest"%>
<%@ page import="javax.portlet.ResourceResponse"%>
<%@ page import="java.util.*"%>
<%@ page import="java.io.*"%>
<%@ page import="java.awt.*"%>
<%@ page import="java.awt.image.*"%>
<%@ page import="javax.imageio.*"%>
<%@ page import="java.awt.geom.*"%>
<%@ page import="com.esic.portal.html.signup.util.CaptchaTextProducer"%>
<%@ page import="com.esic.portal.html.signup.controller.SignUpController"%>
<%@ page import="com.esic.portal.html.signup.domain.Signup"%>
<%@ page import="com.esic.portal.html.signup.util.Base64"%>


<%@ page import="com.liferay.portal.util.PortalUtil"%>
<%@ page import="com.liferay.portal.kernel.captcha.CaptchaTextException"%>
<%@ page import="com.liferay.portal.kernel.captcha.CaptchaUtil"%>
<%@ page import="com.liferay.portal.kernel.captcha.Captcha"%>

<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core_rt" %>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%>

<%@ taglib uri="http://liferay.com/tld/journal" prefix="jnl"%>
<%@ taglib uri="http://liferay.com/tld/portlet" prefix="liferay-portlet"%>
<%@ taglib uri="http://liferay.com/tld/theme" prefix="liferay-theme"%>
<%@ taglib uri="http://liferay.com/tld/ui" prefix="liferay-ui"%>


<portlet:defineobjects />

<portlet:actionurl var="captchaURL" />
<liferay-theme:defineobjects />

<portlet:actionurl var="formAction">
    <portlet:param name="action" value="insert" />
</portlet:actionurl>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link rel="stylesheet" href="/ESICInternetAuthServicePortlets/css/internet_auth_service_style.css" type="text/css">

<script language="Javascript">

    function emailValidator(elem, helperMsg) {
        var emailExp = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/;
        if(elem.value.match(emailExp)){
            return true;
        }else{
            alert(helperMsg);
            elem.focus();
            return false;
        }
    }

    function removeMessage()
    {
        valIndex=0;
        var tableElement = document.getElementById("insert1");
        var rowLength = tableElement.rows.length;
        for (var i=0; i<(rowLength); i++)
        {
            tableElement.deleteRow('');
        }
    }

    function guestHome() {
        location.href = "http://portal.esic.co.in:8080/webspace";
    }

    function isSpclChar(elem, helperMsg){
        var iChars = "!@#$%^&*()+=-[]\\\';,./{}|\":<>?";
        for (var i = 0; i < elem.value.length; i++) {
            if (iChars.indexOf(elem.value.charAt(i)) != -1) {
                alert(helperMsg);
                return false;
            }
        }
    }

    function checkEmpty(){
        if(document.getElementById('unitName').value=="" ||document.getElementById('firstName').value=="" ||document.getElementById('lastName').value==""||document.getElementById('email').value==""){
            alert("All fields are mandatory");
        }
        else{
            document.signup.submit();
        }
    }

</script>


    <div id="maincontent">
        <div class="innercontent">

            <table cellpadding="0" cellspacing="0" border="0" width="100%" class="pageHeader">
                <tbody><tr>
                    <td><spring:message code="esicsignup" /></td>

                </tr>
            </tbody></table>
            <table cellpadding="0" cellspacing="0" border="0" width="100%">
                <tbody><tr>
                    <td><b><spring:message code="mandatory" /></b></td>
                </tr>
            </tbody></table>
            <form:form name="signup" commandname="signup" method="post" action="${formAction}">
                <table id="insert1" width="476" border="0" cellpadding="0" cellspacing="0" align="center" class="login">
                    <tbody><tr>
                        <td width="150" class="leftTopFormLabel" colspan="2"><b><liferay-ui:error exception="<%= CaptchaTextException.class %>" message="text-verification-failed" /></b></td>
                    </tr>

                    <tr>
                        <td width="150" class="leftTopFormLabel" colspan="2"><b><form:errors path="unitName" cssStyle="color:red" /></b></td>
                    </tr>
                    <tr>
                        <td width="150" class="leftTopFormLabel" colspan="2"><b><form:errors path="firstName" cssStyle="color:red" /></b></td>
                    </tr>
                    <tr>
                        <td width="150" class="leftTopFormLabel" colspan="2"><b><form:errors path="lastName" cssStyle="color:red" /></b></td>
                    </tr>
                    <tr>
                        <td width="150" class="leftTopFormLabel" colspan="2"><b><form:errors path="email" cssStyle="color:red" /></b></td>
                    </tr>
                    <tr>
                        <td width="150" class="leftTopFormLabel" colspan="2"><b><form:errors path="captchausertext" cssStyle="color:red" /></b></td>
                    </tr>
                </tbody></table>
                <table id="insert2" width="476" border="0" cellpadding="0" cellspacing="0" align="center">
                    <tbody><tr>
                        <td colspan="2">&nbsp;</td>
                    </tr>
                    <tr>
                        <td width="150" class="leftTopFormLabel"><spring:message code="unitName" /><span style="color:red"> *</span> :</td>
                        <td width="252"><input name="unitName" type="text" id="unitName" value="" onchange="javascript:isSpclChar(document.getElementById('unitName'), 'Please enter a valid Unit Name')" title="Please Enter the Company Name" size="31" maxlength="50"></td>
                    </tr>
                    <tr><td colspan="2">&nbsp;</td></tr>
                    <tr>
                        <td width="150" class="leftTopFormLabel"><spring:message code="firstName" /><span style="color:red"> *</span> :</td>
                        <td><input name="firstName" type="text" id="firstName" value="" onchange="javascript:isSpclChar(document.getElementById('firstName'), 'Please enter a valid First Name')" size="31" maxlength="25"></td>
                    </tr>
                    <tr><td colspan="2">&nbsp;</td></tr>
                    <tr>
                        <td width="150" class="leftTopFormLabel"><spring:message code="lastName" /><span style="color:red"> *</span> :</td>
                        <td><input name="lastName" type="text" id="lastName" value="" onchange="javascript:isSpclChar(document.getElementById('lastName'), 'Please enter a valid Last Name')" size="31" maxlength="25"></td>
                    </tr>
                    <tr><td colspan="2">&nbsp;</td></tr>
                    <tr>
                        <td width="150" class="leftTopFormLabel"><spring:message code="emailAddress" /><span style="color:red"> *</span> :</td>
                        <td><input name="email" type="text" id="email" size="31" value="" maxlength="45" onchange="javascript:emailValidator(document.getElementById('email'), 'Please enter a valid Email Address')"></td>
                    </tr>
                    <tr><td colspan="2">&nbsp;</td></tr>
                    <tr>
                        <td>&nbsp;</td>
                        <td><liferay-ui:captcha url="http://localhost:8080/web/guest/home1?p_p_id=58&amp;p_p_lifecycle=1&amp;p_p_url_type=0&amp;p_p_state=exclusive&amp;p_p_mode=view&amp;_58_struts_action=%2Flogin%2Fcaptcha" /></td>
                    </tr>
                    <tr>
                        <td colspan="2">&nbsp;</td>
                    </tr>
                    <tr align="center" valign="middle">
                        <td colspan="2" align="center" valign="bottom">
                            <input type="button" name="button5" id="button5" onClick="javascript:checkEmpty()" value="<spring:message code=" submit">"/&gt;&nbsp;&nbsp;
                            <input type="reset" name="button6" id="button6" value="<spring:message code=" clear">"/&gt;&nbsp;&nbsp;
                            <input type="button" name="button7" id="button7" onClick="javascript:removeMessage();javascript:guestHome()" value="<spring:message code=" cancel">"/&gt;&nbsp;&nbsp;
                            <p>&nbsp;</p>
                        </td>
                    </tr>
                   
                    </tbody></table>
                </form:form></div>
            </div>
    




now, i am unable to validate the entered captcha. it is not throwing any exception. but it is not validating.

if u have some idea also, plz help.

Rgds,
Rajesh.
thumbnail
Sandeep Nair, geändert vor 14 Jahren.

RE: Liferay Captcha validation

Liferay Legend Beiträge: 1744 Beitrittsdatum: 06.11.08 Neueste Beiträge
Remove <portlet:actionURL var="captchaURL"/> from top

and add this inside your <td>

	<portlet:actionurl windowstate="<%= LiferayWindowState.EXCLUSIVE.toString() %>" var="captchaURL">
		<portlet:param name="struts_action" value="/myportlet/captcha" />
	</portlet:actionurl>

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


Make sure /myportlet/captcha maps to com.liferay.portal.captcha.CaptchaPortletAction in struts-config.xml

Regards,
Sandeep
thumbnail
Rajesh Babu, geändert vor 14 Jahren.

RE: Liferay Captcha validation

Regular Member Beiträge: 161 Beitrittsdatum: 08.02.10 Neueste Beiträge
HI thx for ur reply,

i am developing spring portlets. i tried this procedure of achieving it. but i am getting error like,

"can not find symbol captchaURL" for <liferay-ui:captcha url="<%= captchaURL %>" /> emoticon
thumbnail
Sandeep Nair, geändert vor 14 Jahren.

RE: Liferay Captcha validation

Liferay Legend Beiträge: 1744 Beitrittsdatum: 06.11.08 Neueste Beiträge
Are you using plugin sdk?
thumbnail
Rajesh Babu, geändert vor 14 Jahren.

RE: Liferay Captcha validation

Regular Member Beiträge: 161 Beitrittsdatum: 08.02.10 Neueste Beiträge
yes.
thumbnail
Sandeep Nair, geändert vor 14 Jahren.

RE: Liferay Captcha validation

Liferay Legend Beiträge: 1744 Beitrittsdatum: 06.11.08 Neueste Beiträge
Hi,

In that case can you please check this.

I havent tried it.

Regards,
Sandeep
thumbnail
Rajesh Babu, geändert vor 14 Jahren.

RE: Liferay Captcha validation

Regular Member Beiträge: 161 Beitrittsdatum: 08.02.10 Neueste Beiträge
hi sandeep, earlier i tried this one also, giving the same error for

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

then i had given something like this,

<liferay-ui:captcha url="http://localhost:8080/web/guest/home1?p_p_id=58&p_p_lifecycle=1&p_p_url_type=0&p_p_state=exclusive&p_p_mode=view&_58_struts_action=%2Flogin%2Fcaptcha" />

the image is displayed. but unable 2 validate it.
Varsha Gulave, geändert vor 13 Jahren.

RE: Liferay Captcha validation

New Member Beiträge: 11 Beitrittsdatum: 18.02.11 Neueste Beiträge
<liferay-ui:captcha url="http://localhost:8080/web/guest/home1?p_p_id=58&p_p_lifecycle=1&p_p_url_type=0&p_p_state=exclusive&p_p_mode=view&_58_struts_action=%2Flogin%2Fcaptcha" />

I used this but it not displaying image??
plz help
Arsh g, geändert vor 13 Jahren.

RE: Liferay Captcha validation

New Member Beiträge: 11 Beitrittsdatum: 18.02.11 Neueste Beiträge
I solved the problem.
thanxs
thumbnail
Sandeep Nair, geändert vor 14 Jahren.

RE: Liferay Captcha validation

Liferay Legend Beiträge: 1744 Beitrittsdatum: 06.11.08 Neueste Beiträge
Hi Rajesh,

Did you follow as mentioned in the link that i sent. It works for me when i follow that.

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

Regards,
Sandeep
thumbnail
Rajesh Babu, geändert vor 14 Jahren.

RE: Liferay Captcha validation

Regular Member Beiträge: 161 Beitrittsdatum: 08.02.10 Neueste Beiträge
Hi sandeep,

i am following it frm past 3 days. i am still facing 3 problems

1. Unable to import JSPPortlet in CaptchaSamplePortlet. i am using 5.2.1

2. <liferay-ui:captcha url="<%= captchaURL %>"/> "can not find symbol captchaURL" in jsp.

3. Exception("Internal Error! Captcha text not found in session");


plz guide me dude.
thumbnail
Sandeep Nair, geändert vor 14 Jahren.

RE: Liferay Captcha validation

Liferay Legend Beiträge: 1744 Beitrittsdatum: 06.11.08 Neueste Beiträge
Ok Here are the steps.

First of all heres the jsp that you need. I have kept it really simple

&lt;%@ taglib uri="http://java.sun.com/portlet_2_0" prefix="portlet" %&gt;
&lt;%@ taglib uri="http://liferay.com/tld/ui" prefix="liferay-ui"%&gt;
<jsp:usebean id="name" class="java.lang.String" scope="request" />
<portlet:defineobjects />
<form method="post" action="<portlet:actionURL/>">
	<portlet:resourceurl var="captchaURL" />
	<liferay-ui:captcha url="<%= captchaURL %>" />
	<input type="submit">
</form>


Next add this in your portlet class. This is used for displaying captcha image in jsp

public void serveResource(ResourceRequest request, ResourceResponse response)
			throws PortletException, IOException {
		CaptchaUtil.serveImage(request, response);
	}


Modify your processAction. Here when you hit submit form from jsp the captchaText is retrieved from request and compared with the image text. I have done a simple SOP which says Valid captcha or invalid captcha. You can handle the code as you like after you get the flag.

public void processAction(
			ActionRequest actionRequest, ActionResponse actionResponse)
		throws IOException, PortletException {
		if(checkCaptcha(actionRequest)){
			System.out.println("Valid captcha. Proceed further");
		}else{
			System.out.println("Invalid Captcha. Throw some custom exception which you will catch in jsp and display error message");
		}
		actionResponse.setPortletMode(PortletMode.VIEW);
	}
	 private boolean checkCaptcha(PortletRequest request) throws PortletException {
	        String enteredCaptchaText = ParamUtil.getString(request, "captchaText");
	        boolean isValid = true;
	        PortletSession session = request.getPortletSession();
	        String captchaText = getCaptchaValueFromSession(session);
	        if (Validator.isNull(captchaText)) {
	            System.out.println("Internal Error! Captcha text not found in session");
	            isValid = false;
	        }
	        if (!captchaText.equals(enteredCaptchaText)) {
	        	System.out.println("Invalid captcha text. Please reenter.");
	            isValid = false;
	        }
	        return isValid;
	    }

	    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;
	    }</string>


Regards,
Sandeep
thumbnail
Rajesh Babu, geändert vor 14 Jahren.

RE: Liferay Captcha validation

Regular Member Beiträge: 161 Beitrittsdatum: 08.02.10 Neueste Beiträge
Hi Sandeep,


thx 4 ur effort dude. i tried it.

but this problem still persist.

2. <liferay-ui:captcha url="<%= captchaURL %>"/> "can not find symbol captchaURL" in jsp.
thumbnail
Sandeep Nair, geändert vor 14 Jahren.

RE: Liferay Captcha validation

Liferay Legend Beiträge: 1744 Beitrittsdatum: 06.11.08 Neueste Beiträge
Make sure your portlet class is extending GenericPortlet.
thumbnail
Sandeep Nair, geändert vor 14 Jahren.

RE: Liferay Captcha validation

Liferay Legend Beiträge: 1744 Beitrittsdatum: 06.11.08 Neueste Beiträge
Hi,

I have attached the war. Unzip it and add it to your webapps folder. It has source too.

Regards,
Sandeep
thumbnail
Rajesh Babu, geändert vor 14 Jahren.

RE: Liferay Captcha validation

Regular Member Beiträge: 161 Beitrittsdatum: 08.02.10 Neueste Beiträge
Hi Sandeep,

i am developing it in Spring Portlet and extending SimpleFormController dude.
thumbnail
Sandeep Nair, geändert vor 14 Jahren.

RE: Liferay Captcha validation

Liferay Legend Beiträge: 1744 Beitrittsdatum: 06.11.08 Neueste Beiträge
Oh... How are you redirecting it to the jsp that shows captcha. You have to write the following code in your java file before forwarding to that jsp

CaptchaUtil.serveImage(request, response);

Regards,
Sandeep
thumbnail
Rajesh Babu, geändert vor 14 Jahren.

RE: Liferay Captcha validation

Regular Member Beiträge: 161 Beitrittsdatum: 08.02.10 Neueste Beiträge
Hi Sandeep,

i think their is nothing like doGet() in simpleformcontroller.

tats y i used something like,

<td><img alt="captcha" class="captcha" src="CaptchaUtil.serveImage(request, response);" /></td>
<td>Text Verification<input name="enteredCaptchaText" size="10" type="text" value="" /></td>


it is not displaying any image, but displaying "captcha" text only.
thumbnail
Alexey Kakunin, geändert vor 14 Jahren.

RE: Liferay Captcha validation

Liferay Master Beiträge: 621 Beitrittsdatum: 07.07.08 Neueste Beiträge
Hi!

Rajesh Babu:

2. <liferay-ui:captcha url="<%= captchaURL %>"/> "can not find symbol captchaURL" in jsp.


Could you check you have

<portlet:resourceurl var="captchaURL" />

in your code? Actually - it is defined variable captchaURL to be inserted later into <liferay-ui:captcha> tag
thumbnail
Rajesh Babu, geändert vor 14 Jahren.

RE: Liferay Captcha validation

Regular Member Beiträge: 161 Beitrittsdatum: 08.02.10 Neueste Beiträge
Hi Alexey,

thx for ur reply. u r exactly rite. i defined it like,

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


but still it is giving error as captchaURL not defined.
thumbnail
Hadrien Mens-Pellen, geändert vor 13 Jahren.

RE: Liferay Captcha validation

New Member Beiträge: 20 Beitrittsdatum: 21.02.11 Neueste Beiträge
Hi!

Can you try this (works for me).

<portlet:resourceURL var="captchaURL"/>
<liferay-ui:captcha url="${captchaURL}"/>
thumbnail
Danial Habibi, geändert vor 12 Jahren.

RE: Liferay Captcha validation

Regular Member Beiträge: 141 Beitrittsdatum: 01.11.11 Neueste Beiträge
Sandeep Nair:
Ok Here are the steps.

First of all heres the jsp that you need. I have kept it really simple

&lt;%@ taglib uri="http://java.sun.com/portlet_2_0" prefix="portlet" %&gt;
&lt;%@ taglib uri="http://liferay.com/tld/ui" prefix="liferay-ui"%&gt;
<jsp:usebean id="name" class="java.lang.String" scope="request" />
<portlet:defineobjects />
<form method="post" action="<portlet:actionURL/>">
	<portlet:resourceurl var="captchaURL" />
	<liferay-ui:captcha url="<%= captchaURL %>" />
	<input type="submit">
</form>


Next add this in your portlet class. This is used for displaying captcha image in jsp

public void serveResource(ResourceRequest request, ResourceResponse response)
			throws PortletException, IOException {
		CaptchaUtil.serveImage(request, response);
	}


Modify your processAction. Here when you hit submit form from jsp the captchaText is retrieved from request and compared with the image text. I have done a simple SOP which says Valid captcha or invalid captcha. You can handle the code as you like after you get the flag.

public void processAction(
			ActionRequest actionRequest, ActionResponse actionResponse)
		throws IOException, PortletException {
		if(checkCaptcha(actionRequest)){
			System.out.println("Valid captcha. Proceed further");
		}else{
			System.out.println("Invalid Captcha. Throw some custom exception which you will catch in jsp and display error message");
		}
		actionResponse.setPortletMode(PortletMode.VIEW);
	}
	 private boolean checkCaptcha(PortletRequest request) throws PortletException {
	        String enteredCaptchaText = ParamUtil.getString(request, "captchaText");
	        boolean isValid = true;
	        PortletSession session = request.getPortletSession();
	        String captchaText = getCaptchaValueFromSession(session);
	        if (Validator.isNull(captchaText)) {
	            System.out.println("Internal Error! Captcha text not found in session");
	            isValid = false;
	        }
	        if (!captchaText.equals(enteredCaptchaText)) {
	        	System.out.println("Invalid captcha text. Please reenter.");
	            isValid = false;
	        }
	        return isValid;
	    }

	    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;
	    }</string>


Regards,
Sandeep


hi sandeep I've tried the method u provide but i got error like this
Internal Error! Captcha text not found in session
20:28:47,134 ERROR [PortletServlet:96] javax.portlet.PortletException: java.lang.NullPointerException
javax.portlet.PortletException: java.lang.NullPointerException
	at com.liferay.portal.kernel.portlet.LiferayPortlet.callActionMethod(LiferayPortlet.java:156)
	at com.liferay.util.bridges.mvc.MVCPortlet.callActionMethod(MVCPortlet.java:227)
	at com.liferay.portal.kernel.portlet.LiferayPortlet.processAction(LiferayPortlet.java:69)
	at com.liferay.util.bridges.mvc.MVCPortlet.processAction(MVCPortlet.java:199)
	at com.liferay.portlet.FilterChainImpl.doFilter(FilterChainImpl.java:70)
	at com.liferay.portal.kernel.portlet.PortletFilterUtil.doFilter(PortletFilterUtil.java:48)
	at com.liferay.portal.kernel.servlet.PortletServlet.service(PortletServlet.java:92)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:646)
	at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:551)
	at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:488)
	at com.liferay.portlet.InvokerPortletImpl.invoke(InvokerPortletImpl.java:638)
	at com.liferay.portlet.InvokerPortletImpl.invokeAction(InvokerPortletImpl.java:687)
	at com.liferay.portlet.InvokerPortletImpl.processAction(InvokerPortletImpl.java:360)
	at com.liferay.portal.action.LayoutAction.processPortletRequest(LayoutAction.java:784)
	at com.liferay.portal.action.LayoutAction.processLayout(LayoutAction.java:582)
	at com.liferay.portal.action.LayoutAction.execute(LayoutAction.java:232)
	at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)
	at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
	at com.liferay.portal.struts.PortalRequestProcessor.process(PortalRequestProcessor.java:153)
	at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
	at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
	at com.liferay.portal.servlet.MainServlet.callParentService(MainServlet.java:508)
	at com.liferay.portal.servlet.MainServlet.service(MainServlet.java:485)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:196)
	at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:126)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:196)
	at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:126)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:196)
	at com.liferay.portal.servlet.filters.strip.StripFilter.processFilter(StripFilter.java:309)
	at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:123)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:196)
	at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:126)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:196)
	at com.liferay.portal.servlet.filters.gzip.GZipFilter.processFilter(GZipFilter.java:121)
	at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:123)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:196)
	at com.liferay.portal.servlet.filters.secure.SecureFilter.processFilter(SecureFilter.java:182)
	at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:123)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:196)
	at com.liferay.portal.servlet.filters.autologin.AutoLoginFilter.processFilter(AutoLoginFilter.java:254)
	at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:123)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:646)
	at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:436)
	at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:374)
	at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:302)
	at com.liferay.portal.servlet.FriendlyURLServlet.service(FriendlyURLServlet.java:134)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:196)
	at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:126)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:196)
	at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:126)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:196)
	at com.liferay.portal.servlet.filters.strip.StripFilter.processFilter(StripFilter.java:261)
	at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:123)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:196)
	at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:126)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:196)
	at com.liferay.portal.servlet.filters.gzip.GZipFilter.processFilter(GZipFilter.java:110)
	at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:123)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:196)
	at com.liferay.portal.servlet.filters.secure.SecureFilter.processFilter(SecureFilter.java:182)
	at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:123)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:196)
	at com.liferay.portal.servlet.filters.i18n.I18nFilter.processFilter(I18nFilter.java:222)
	at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:123)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:196)
	at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:126)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:196)
	at com.liferay.portal.servlet.filters.cache.CacheFilter.processFilter(CacheFilter.java:442)
	at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:123)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:196)
	at com.liferay.portal.servlet.filters.etag.ETagFilter.processFilter(ETagFilter.java:45)
	at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:123)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:196)
	at com.liferay.portal.servlet.filters.autologin.AutoLoginFilter.processFilter(AutoLoginFilter.java:254)
	at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:123)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:196)
	at com.liferay.portal.servlet.filters.sso.ntlm.NtlmPostFilter.processFilter(NtlmPostFilter.java:81)
	at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:123)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:196)
	at com.liferay.portal.sharepoint.SharepointFilter.processFilter(SharepointFilter.java:179)
	at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:123)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:196)
	at com.liferay.portal.servlet.filters.virtualhost.VirtualHostFilter.processFilter(VirtualHostFilter.java:240)
	at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:123)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:196)
	at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:126)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:196)
	at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:126)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.tuckey.web.filters.urlrewrite.UrlRewriteFilter.doFilter(UrlRewriteFilter.java:738)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:196)
	at com.liferay.portal.servlet.filters.threadlocal.ThreadLocalFilter.processFilter(ThreadLocalFilter.java:35)
	at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:123)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:470)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:857)
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
	at java.lang.Thread.run(Thread.java:619)
Caused by: java.lang.NullPointerException
	at com.registrasi.unhan.portlet.PendaftaranPortlet.checkCaptcha(PendaftaranPortlet.java:51)
	at com.registrasi.unhan.portlet.PendaftaranPortlet.addPendaftar(PendaftaranPortlet.java:78)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at com.liferay.portal.kernel.portlet.LiferayPortlet.callActionMethod(LiferayPortlet.java:138)
	... 162 more
20:28:47,148 ERROR [jsp:154] java.lang.NullPointerException
	at com.registrasi.unhan.portlet.PendaftaranPortlet.checkCaptcha(PendaftaranPortlet.java:51)
	at com.registrasi.unhan.portlet.PendaftaranPortlet.addPendaftar(PendaftaranPortlet.java:78)
	at com.liferay.portal.kernel.portlet.LiferayPortlet.callActionMethod(LiferayPortlet.java:138)
	at com.liferay.util.bridges.mvc.MVCPortlet.callActionMethod(MVCPortlet.java:227)
	at com.liferay.portal.kernel.portlet.LiferayPortlet.processAction(LiferayPortlet.java:69)
	at com.liferay.util.bridges.mvc.MVCPortlet.processAction(MVCPortlet.java:199)
	at com.liferay.portlet.FilterChainImpl.doFilter(FilterChainImpl.java:70)
	at com.liferay.portal.kernel.portlet.PortletFilterUtil.doFilter(PortletFilterUtil.java:48)
	at com.liferay.portal.kernel.servlet.PortletServlet.service(PortletServlet.java:92)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:646)
	at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:551)
	at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:488)
	at com.liferay.portlet.InvokerPortletImpl.invoke(InvokerPortletImpl.java:638)
	at com.liferay.portlet.InvokerPortletImpl.invokeAction(InvokerPortletImpl.java:687)
	at com.liferay.portlet.InvokerPortletImpl.processAction(InvokerPortletImpl.java:360)
	at com.liferay.portal.action.LayoutAction.processPortletRequest(LayoutAction.java:784)
	at com.liferay.portal.action.LayoutAction.processLayout(LayoutAction.java:582)



My Code almost same just like u provide the difference only on action like this
		throws PortalException, SystemException,PortletException {

		Pendaftaran pendaftar = ActionUtil.pendaftaranFromRequest(request);

		ArrayList<string> errors = new ArrayList<string>();
		ServiceContext serviceContext = ServiceContextFactory.getInstance(
				Pendaftaran.class.getName(), request);
	
		log.info("masuk");
		if (PdValidator.validatePendaftar(pendaftar, errors)&amp;&amp;checkCaptcha(request)) {
			log.info("berhasil");

			try {
				PendaftaranLocalServiceUtil.addPendaftaran(pendaftar,
						pendaftar.getUserId(), serviceContext);
				

			} catch (SystemException e) {

				errors.add("failed-to-add");

			} catch (PortalException e) {

				errors.add("failed-to-add");
			}
			
			request.setAttribute("pendaftaran", pendaftar);
			response.setRenderParameter("jspPage", FileJSP);
	        	

		} else

		{

			for (String error : errors) {
				SessionErrors.add(request, error);
			}


		}
		
		

	}</string></string>

in my jsp I'm adding
<portlet:resourceurl var="captchaURL" />
		<liferay-ui:captcha url="<%= captchaURL %>" />
		

before my submit button
any idea how to resolve that??
thank's

regards

danial
thumbnail
Sandeep Nair, geändert vor 12 Jahren.

RE: Liferay Captcha validation

Liferay Legend Beiträge: 1744 Beitrittsdatum: 06.11.08 Neueste Beiträge
Is it possible for you to attach the portlet? The exception seems to come in PendaftaranPortlet.checkCaptcha method.

Regards,
Sandeep
thumbnail
Danial Habibi, geändert vor 12 Jahren.

RE: Liferay Captcha validation

Regular Member Beiträge: 141 Beitrittsdatum: 01.11.11 Neueste Beiträge
Sandeep Nair:
Is it possible for you to attach the portlet? The exception seems to come in PendaftaranPortlet.checkCaptcha method.

Regards,
Sandeep

Ok I will Attach my Portlet...

Thank's For ur Help,, I've tried about portletsession and i get the session but can't get the captcha attribute from session...

I'm Using plugin SDK LR 6.0.6
Regards


Danial
thumbnail
Sandeep Nair, geändert vor 12 Jahren.

RE: Liferay Captcha validation

Liferay Legend Beiträge: 1744 Beitrittsdatum: 06.11.08 Neueste Beiträge
Hi Danial,

Your code is working perfectly fine. I am attaching the java file

Note: I had to do some changes to make it working in my system

Removed ext-spring.xml as i m using mysql and removed datasource def in service.xml and did build service
Deleted Listener class as that was giving me error
Removed the check of validation for fields as i needed to quickly debug just captcha related code which was working just fine.
thumbnail
Danial Habibi, geändert vor 12 Jahren.

RE: Liferay Captcha validation

Regular Member Beiträge: 141 Beitrittsdatum: 01.11.11 Neueste Beiträge
Sandeep Nair:
Hi Danial,

Your code is working perfectly fine. I am attaching the java file

Note: I had to do some changes to make it working in my system

Removed ext-spring.xml as i m using mysql and removed datasource def in service.xml and did build service
Deleted Listener class as that was giving me error
Removed the check of validation for fields as i needed to quickly debug just captcha related code which was working just fine.


Hi there It seem there's nothing change from java file u attaching with mine....
I still get the error
Internal Error! Captcha text not found in session
18:53:01,566 ERROR [PortletServlet:96] javax.portlet.PortletException: java.lang.NullPointerException
javax.portlet.PortletException: java.lang.NullPointerException
	at com.liferay.portal.kernel.portlet.LiferayPortlet.callActionMethod(LiferayPortlet.java:156)
	at com.liferay.util.bridges.mvc.MVCPortlet.callActionMethod(MVCPortlet.java:227)
	at com.liferay.portal.kernel.portlet.LiferayPortlet.processAction(LiferayPortlet.java:69)
	at com.liferay.util.bridges.mvc.MVCPortlet.processAction(MVCPortlet.java:199)
	at com.liferay.portlet.FilterChainImpl.doFilter(FilterChainImpl.java:70)
	at com.liferay.portal.kernel.portlet.PortletFilterUtil.doFilter(PortletFilterUtil.java:48)
	at com.liferay.portal.kernel.servlet.PortletServlet.service(PortletServlet.java:92)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:646)
	at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:551)
	at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:488)
	at com.liferay.portlet.InvokerPortletImpl.invoke(InvokerPortletImpl.java:638)
	at com.liferay.portlet.InvokerPortletImpl.invokeAction(InvokerPortletImpl.java:687)
	at com.liferay.portlet.InvokerPortletImpl.processAction(InvokerPortletImpl.java:360)
	at com.liferay.portal.action.LayoutAction.processPortletRequest(LayoutAction.java:784)
	at com.liferay.portal.action.LayoutAction.processLayout(LayoutAction.java:582)
	at com.liferay.portal.action.LayoutAction.execute(LayoutAction.java:232)
	at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)
	at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
	at com.liferay.portal.struts.PortalRequestProcessor.process(PortalRequestProcessor.java:153)
	at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
	at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
	at com.liferay.portal.servlet.MainServlet.callParentService(MainServlet.java:508)
	at com.liferay.portal.servlet.MainServlet.service(MainServlet.java:485)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:196)
	at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:126)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:196)
	at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:126)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:196)
	at com.liferay.portal.servlet.filters.strip.StripFilter.processFilter(StripFilter.java:309)
	at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:123)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:196)
	at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:126)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:196)
	at com.liferay.portal.servlet.filters.gzip.GZipFilter.processFilter(GZipFilter.java:121)
	at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:123)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:196)
	at com.liferay.portal.servlet.filters.secure.SecureFilter.processFilter(SecureFilter.java:182)
	at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:123)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:196)
	at com.liferay.portal.servlet.filters.autologin.AutoLoginFilter.processFilter(AutoLoginFilter.java:254)
	at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:123)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:646)
	at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:436)
	at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:374)
	at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:302)
	at com.liferay.portal.servlet.FriendlyURLServlet.service(FriendlyURLServlet.java:134)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:196)
	at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:126)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:196)
	at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:126)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:196)
	at com.liferay.portal.servlet.filters.strip.StripFilter.processFilter(StripFilter.java:261)
	at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:123)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:196)
	at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:126)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:196)
	at com.liferay.portal.servlet.filters.gzip.GZipFilter.processFilter(GZipFilter.java:110)
	at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:123)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:196)
	at com.liferay.portal.servlet.filters.secure.SecureFilter.processFilter(SecureFilter.java:182)
	at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:123)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:196)
	at com.liferay.portal.servlet.filters.i18n.I18nFilter.processFilter(I18nFilter.java:222)
	at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:123)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:196)
	at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:126)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:196)
	at com.liferay.portal.servlet.filters.cache.CacheFilter.processFilter(CacheFilter.java:442)
	at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:123)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:196)
	at com.liferay.portal.servlet.filters.etag.ETagFilter.processFilter(ETagFilter.java:45)
	at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:123)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:196)
	at com.liferay.portal.servlet.filters.autologin.AutoLoginFilter.processFilter(AutoLoginFilter.java:254)
	at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:123)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:196)
	at com.liferay.portal.servlet.filters.sso.ntlm.NtlmPostFilter.processFilter(NtlmPostFilter.java:81)
	at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:123)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:196)
	at com.liferay.portal.sharepoint.SharepointFilter.processFilter(SharepointFilter.java:179)
	at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:123)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:196)
	at com.liferay.portal.servlet.filters.virtualhost.VirtualHostFilter.processFilter(VirtualHostFilter.java:240)
	at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:123)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:196)
	at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:126)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:196)
	at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:126)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.tuckey.web.filters.urlrewrite.UrlRewriteFilter.doFilter(UrlRewriteFilter.java:738)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:196)
	at com.liferay.portal.servlet.filters.threadlocal.ThreadLocalFilter.processFilter(ThreadLocalFilter.java:35)
	at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:123)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:470)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:857)
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
	at java.lang.Thread.run(Thread.java:619)
Caused by: java.lang.NullPointerException
	at com.registrasi.unhan.portlet.PendaftaranPortlet.checkCaptcha(PendaftaranPortlet.java:51)
	at com.registrasi.unhan.portlet.PendaftaranPortlet.addPendaftar(PendaftaranPortlet.java:78)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at com.liferay.portal.kernel.portlet.LiferayPortlet.callActionMethod(LiferayPortlet.java:138)
	... 162 more
18:53:01,577 ERROR [jsp:154] java.lang.NullPointerException
	at com.registrasi.unhan.portlet.PendaftaranPortlet.checkCaptcha(PendaftaranPortlet.java:51)
	at com.registrasi.unhan.portlet.PendaftaranPortlet.addPendaftar(PendaftaranPortlet.java:78)
	at com.liferay.portal.kernel.portlet.LiferayPortlet.callActionMethod(LiferayPortlet.java:138)
	at com.liferay.util.bridges.mvc.MVCPortlet.callActionMethod(MVCPortlet.java:227)
	at com.liferay.portal.kernel.portlet.LiferayPortlet.processAction(LiferayPortlet.java:69)
	at com.liferay.util.bridges.mvc.MVCPortlet.processAction(MVCPortlet.java:199)
	at com.liferay.portlet.FilterChainImpl.doFilter(FilterChainImpl.java:70)
	at com.liferay.portal.kernel.portlet.PortletFilterUtil.doFilter(PortletFilterUtil.java:48)
	at com.liferay.portal.kernel.servlet.PortletServlet.service(PortletServlet.java:92)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:646)
	at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:551)
	at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:488)
	at com.liferay.portlet.InvokerPortletImpl.invoke(InvokerPortletImpl.java:638)
	at com.liferay.portlet.InvokerPortletImpl.invokeAction(InvokerPortletImpl.java:687)
	at com.liferay.portlet.InvokerPortletImpl.processAction(InvokerPortletImpl.java:360)
	at com.liferay.portal.action.LayoutAction.processPortletRequest(LayoutAction.java:784)
	at com.liferay.portal.action.LayoutAction.processLayout(LayoutAction.java:582)


I've managed to show the Captcha but still can't validate...even after I'm using java file u attach...
I've tried to remove my validator so it only validate chaptcha but still I show
Internal Error! Captcha text not found in session

is there something wrong with my portlet session

is this the right syntax?for parameter "CAPTCHA_TEXT"
if (name.contains("CAPTCHA_TEXT")) {
                return (String) session.getAttribute(name);
            }

in
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;
    }</string>

I'm using LR 6.0.6 emoticon

Thank's

Regards


Danial
thumbnail
Sandeep Nair, geändert vor 12 Jahren.

RE: Liferay Captcha validation

Liferay Legend Beiträge: 1744 Beitrittsdatum: 06.11.08 Neueste Beiträge
It has to be session problem but the strange thing is I havent done any modification related to that to make it work in mine. Can you place a debug in SimpleCaptchaImpl methods serveImage method and check if after setting in session is it available

Regards,
Sandeep
thumbnail
Danial Habibi, geändert vor 12 Jahren.

RE: Liferay Captcha validation

Regular Member Beiträge: 141 Beitrittsdatum: 01.11.11 Neueste Beiträge
Sandeep Nair:
It has to be session problem but the strange thing is I havent done any modification related to that to make it work in mine. Can you place a debug in SimpleCaptchaImpl methods serveImage method and check if after setting in session is it available

Regards,
Sandeep



Hi there Thank's for your advice, yes it seem there's session problem,, I'm trying to deploy the portlet on other PC, and it's work, Anyway Thank's Again Sandeep For your help