OpenCms登录添加验证码功能

OpenCms登录添加验证码功能

OpenCms是一个专业级别的开源网站内容管理系统,可以非常容易的帮助建立和管理复杂的网站而无需专业的HTML知识。它基于JAVA和XML语言技术,因此能完全融入到现有的系统内部。OpenCms可以非常好的运行在一个完全的开源环境中(例如:Linux、Apache、Tomcat、MySQL). 当然,也可以很好的运行于商业环境下(例如:Windows NT、IIS、BEA Weblogic、Oracle DB)。

1.环境

OpenCms版本:11.0.2
思路:修改OpenCms自带案例中的login.jsp
(路径:/system/modules/alkacon.mercury.template/functions/login.jsp),将其修改为带验证码验证功能的网页。
原始代码如下:

<%@page
    pageEncoding="UTF-8"
    buffer="none"
    session="false"
    import="org.opencms.main.*, org.opencms.file.*"
    trimDirectiveWhitespaces="true" %>

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%@ taglib prefix="cms" uri="http://www.opencms.org/taglib/cms" %>
<%@ taglib prefix="mercury" tagdir="/WEB-INF/tags/mercury" %>

<c:set var="setting"                value="${cms.element.setting}" />
<c:set var="cssWrapper"             value="${setting.cssWrapper}" />
<c:set var="loginproject"           value="${setting.loginproject.isSet ? setting.loginproject.toString : 'Online'}" />
<c:set var="loginou"                value="${setting.loginou.isSet ? fn:trim(cms.element.setting.loginou.toString) : ''}" />

<cms:secureparams />
<fmt:setLocale value="${cms.locale}" />
<cms:bundle basename="alkacon.mercury.template.messages">

<jsp:useBean id="loginBean" class="org.opencms.jsp.CmsJspLoginBean" scope="page">

    <% loginBean.init(pageContext, request, response); %>

    <c:choose>
        <c:when test="${(param.action eq 'login') and (not empty param.loginName) and (not empty param.loginPassword)}">
            <c:set var="loginresource">${
   empty param.requestedResource ? cms.requestContext.uri : param.requestedResource}</c:set>
            <c:set var="loginuri">${
   cms.requestContext.siteRoot}${
   loginresource}</c:set>
            <c:set var="loginuser" value="${param.loginName}"/>
            <c:set var="loginpassword" value="${param.loginPassword}"/>
            <c:choose>
                <c:when test="${not empty loginou}">
                    <c:set var="loginprincipal" value="${loginou eq '/' ? '' : loginou}${loginuser}"/>
                    <c:set var="ignore" value="${loginBean.login(loginprincipal, loginpassword, loginproject, loginresource)}" />
                </c:when>
                <c:otherwise>
                    <mercury:findorgunit uri="${loginuri}">
                        <c:set var="success" value="${false}" />
                        <c:forEach var="ou" items="${parentOUs}">
                            <c:if test="${not success}">
                                <c:set var="loginprincipal" value="${empty ou.name ? '' : '/'}${ou.name}${loginuser}"/>
                                <c:set var="ignore" value="${loginBean.login(loginprincipal, loginpassword, loginproject, loginresource)}" />
                                <c:set var="success" value="${loginBean.loggedIn}" />
                            </c:if>
                        </c:forEach>
                    </mercury:findorgunit>
                </c:otherwise>
            </c:choose>
        </c:when>
        <c:when test="${param.action eq 'logoff'}">
            <c:set var="ignore" value="${loginBean.logout()}" />
        </c:when>
    </c:choose>
</jsp:useBean>

<c:set var="loginError" value="${not loginBean.loginSuccess}" />

<mercury:nl/>
<div class="element type-login-form ${cssWrapper}"><%----%>

    <form class="styled-form" target="_self" method="post"><%----%>
        <input type="hidden" name="requestedResource" value="${param.requestedResource}" /><%----%>
        <c:choose>

            <c:when test="${not loginBean.loggedIn}">
                <header><%----%>
                    <fmt:message key="msg.page.login.loggedoff" />
                </header><%----%>
                <fieldset><%----%>
                    <section><%----%>
                        <label class="input ${loginError ? 'state-error' : ''}"><%----%>
                            <span class="icon-prepend fa fa-user"></span><%----%>
                            <input type="text" id="loginName" name="loginName" placeholder="<fmt:message key="msg.page.login.username" />"/><%----%>
                        </label><%----%>
                    </section><%----%>
                    <section><%----%>
                        <label class="input ${loginError ? 'state-error' : ''}"><%----%>
                            <span class="icon-prepend fa fa-lock"></span><%----%>
                            <input type="password" id="loginPassword" name="loginPassword" placeholder="<fmt:message key="msg.page.login.password" />"/><%----%>
                        </label><%----%>
                        <c:if test="${loginError}">
                            <em><fmt:message key="msg.page.login.failed" /></em><%----%>
                        </c:if>
                    </section><%----%>
                </fieldset><%----%>
                <footer><%----%>
                    <button class="btn" type="submit" name="action" value="login" ><fmt:message key="msg.page.login.login" /></button><%--
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值