掲示板

Liferay Captcha validation

thumbnail
14年前 に Rajesh Babu によって更新されました。

Liferay Captcha validation

Regular Member 投稿: 161 参加年月日: 10/02/08 最新の投稿
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
14年前 に Sandeep Nair によって更新されました。

RE: Liferay Captcha validation

Liferay Legend 投稿: 1744 参加年月日: 08/11/06 最新の投稿
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
14年前 に Rajesh Babu によって更新されました。

RE: Liferay Captcha validation

Regular Member 投稿: 161 参加年月日: 10/02/08 最新の投稿
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
14年前 に Sandeep Nair によって更新されました。

RE: Liferay Captcha validation

Liferay Legend 投稿: 1744 参加年月日: 08/11/06 最新の投稿
Are you using plugin sdk?
thumbnail
14年前 に Rajesh Babu によって更新されました。

RE: Liferay Captcha validation

Regular Member 投稿: 161 参加年月日: 10/02/08 最新の投稿
yes.
thumbnail
14年前 に Sandeep Nair によって更新されました。

RE: Liferay Captcha validation

Liferay Legend 投稿: 1744 参加年月日: 08/11/06 最新の投稿
Hi,

In that case can you please check this.

I havent tried it.

Regards,
Sandeep
thumbnail
14年前 に Rajesh Babu によって更新されました。

RE: Liferay Captcha validation

Regular Member 投稿: 161 参加年月日: 10/02/08 最新の投稿
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.
13年前 に Varsha Gulave によって更新されました。

RE: Liferay Captcha validation

New Member 投稿: 11 参加年月日: 11/02/18 最新の投稿
<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
13年前 に Arsh g によって更新されました。

RE: Liferay Captcha validation

New Member 投稿: 11 参加年月日: 11/02/18 最新の投稿
I solved the problem.
thanxs
thumbnail
14年前 に Sandeep Nair によって更新されました。

RE: Liferay Captcha validation

Liferay Legend 投稿: 1744 参加年月日: 08/11/06 最新の投稿
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
14年前 に Rajesh Babu によって更新されました。

RE: Liferay Captcha validation

Regular Member 投稿: 161 参加年月日: 10/02/08 最新の投稿
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
14年前 に Sandeep Nair によって更新されました。

RE: Liferay Captcha validation

Liferay Legend 投稿: 1744 参加年月日: 08/11/06 最新の投稿
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
14年前 に Rajesh Babu によって更新されました。

RE: Liferay Captcha validation

Regular Member 投稿: 161 参加年月日: 10/02/08 最新の投稿
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
14年前 に Sandeep Nair によって更新されました。

RE: Liferay Captcha validation

Liferay Legend 投稿: 1744 参加年月日: 08/11/06 最新の投稿
Make sure your portlet class is extending GenericPortlet.
thumbnail
14年前 に Sandeep Nair によって更新されました。

RE: Liferay Captcha validation

Liferay Legend 投稿: 1744 参加年月日: 08/11/06 最新の投稿
Hi,

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

Regards,
Sandeep
thumbnail
14年前 に Rajesh Babu によって更新されました。

RE: Liferay Captcha validation

Regular Member 投稿: 161 参加年月日: 10/02/08 最新の投稿
Hi Sandeep,

i am developing it in Spring Portlet and extending SimpleFormController dude.
thumbnail
14年前 に Sandeep Nair によって更新されました。

RE: Liferay Captcha validation

Liferay Legend 投稿: 1744 参加年月日: 08/11/06 最新の投稿
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
14年前 に Rajesh Babu によって更新されました。

RE: Liferay Captcha validation

Regular Member 投稿: 161 参加年月日: 10/02/08 最新の投稿
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
14年前 に Alexey Kakunin によって更新されました。

RE: Liferay Captcha validation

Liferay Master 投稿: 621 参加年月日: 08/07/07 最新の投稿
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
14年前 に Rajesh Babu によって更新されました。

RE: Liferay Captcha validation

Regular Member 投稿: 161 参加年月日: 10/02/08 最新の投稿
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
13年前 に Hadrien Mens-Pellen によって更新されました。

RE: Liferay Captcha validation

New Member 投稿: 20 参加年月日: 11/02/21 最新の投稿
Hi!

Can you try this (works for me).

<portlet:resourceURL var="captchaURL"/>
<liferay-ui:captcha url="${captchaURL}"/>
thumbnail
12年前 に Danial Habibi によって更新されました。

RE: Liferay Captcha validation

Regular Member 投稿: 141 参加年月日: 11/11/01 最新の投稿
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
12年前 に Sandeep Nair によって更新されました。

RE: Liferay Captcha validation

Liferay Legend 投稿: 1744 参加年月日: 08/11/06 最新の投稿
Is it possible for you to attach the portlet? The exception seems to come in PendaftaranPortlet.checkCaptcha method.

Regards,
Sandeep
thumbnail
12年前 に Danial Habibi によって更新されました。

RE: Liferay Captcha validation

Regular Member 投稿: 141 参加年月日: 11/11/01 最新の投稿
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
12年前 に Sandeep Nair によって更新されました。

RE: Liferay Captcha validation

Liferay Legend 投稿: 1744 参加年月日: 08/11/06 最新の投稿
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
12年前 に Danial Habibi によって更新されました。

RE: Liferay Captcha validation

Regular Member 投稿: 141 参加年月日: 11/11/01 最新の投稿
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
12年前 に Sandeep Nair によって更新されました。

RE: Liferay Captcha validation

Liferay Legend 投稿: 1744 参加年月日: 08/11/06 最新の投稿
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
12年前 に Danial Habibi によって更新されました。

RE: Liferay Captcha validation

Regular Member 投稿: 141 参加年月日: 11/11/01 最新の投稿
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