reCaptcha x SpringSecurity

16/10/2021

0

Bom dia!
Estou tendo problemas em um form de login para o reCaptcha do Google usando o SpringSecurity. Quando submeto as credenciais a aplicação não valida
que os campos de usuário e senha não foram preenchidos e também que o checkBox do reCaptcha não foi marcado. O aviso só vem no Controller quando
tenta buscar o usuário e a senha em brancos no banco de dados e que obviamente não existem e então propagada a mensagem de USUÁRIO E SENHA inválidos.
Porém eu preciso bloquear os campos em branco e também validar o reCaptcha para evitar bots. Em outros forms , por exemplo o de recuperação de senha, isso
não ocorre , eles estão funcionando como esperado. Já comparei e não detectei o erro.

View:

 <h:form id="formLogin" prependId="false"> <!-- prependId = false para o JSF nao gerar os Ids automaticamente -->
         <span>${SPRING_SECURITY_LAST_EXCEPTION.message}</span>
            <p:growl id="growLogin" showDetail="true" />
            <p:focus id="focus" context="formLogin"/> 
            <p:panelGrid columns="2" columnClasses="topAligned, topAligned" >
            <h:column>
            <p:fieldset">
                <div class="login-panel ui-fluid">
                <div class="ui-g">
                    <div class="ui-g-12">
                      <h:panelGroup>
                          <p:outputLabel style="font-weight:bold" for="username">Informe o seu e-mail</p:outputLabel>
                          <p:inputText alt="Informe o seu e-mail!" id="username" maxlength="80" value="#{loginController.login}" placeholder="meuemail@email.com.br" required="true" requiredMessage="O e-mail deve ser informado!">
                                <f:validateLength minimum="1" />  
                            </p:inputText>
                      </h:panelGroup>
                    </div>
                    <div class="ui-g-12">
                            <p:outputLabel style="font-weight:bold" for="username">Informe a sua senha</p:outputLabel>
                            <h:panelGroup styleClass="md-inputfield">                         
                             <p:password alt="Informe a sua senha!" id="password" value="#{loginController.password}" 
                                         required="true" placeholder="Senha" maxlength="15"
                                            requiredMessage="A senha deve ser informada!">
                                  <f:validateLength minimum="1" />  
                             </p:password>
                               <button id="button" type="button" ="checkPassPwd('password','button')" ><i class="show-pass fa fa-eye fa-lg"></i></button>
                            </h:panelGroup>   
                      <p:captcha value="Captcha"  language="pt" required="true" requiredMessage="Informe o Captcha" validatorMessage="Erro na informação do Capcha" />
                    </div>
                        <p:panelGrid columns="2">
                        <p:column styleClass="coluna-acao">
                            <p:commandButton alt="Confirmar" id="btnLogin" value="Confirmar" update="growLogin" ajax="false"
                                             action="#{loginController.efetuarLogin()}" icon="ui-icon-person" style="margin-bottom: 10px;"/>
                            <p:commandButton alt="Limpar" value="Limpar" icon="ui-icon-person" ajax="false" style="margin-bottom: 10px;" type="reset" />
                        </p:column>
                        <p:column>
                            <a href="esqueciSenha.xhtml">Esqueci minha senha</a>
                            <br/> 
                            <a href="preCadastro.xhtml"  >Não tenho cadastro</a>
                        </p:column>  
                      </p:panelGrid>    
                    
                </div>
            </div>
            </p:fieldset>
           </h:column>
            <h:column>
              <a href="./resources/Manual.pdf"  style="color:red;font-weight:800;" target="_blank">Como usar a plataforma?</a>
              <p:fieldset legend="Mural de avisos"  >
                  <ul>
                      <li><h:outputText value="#{loginController.mensagem1}"/></li>
                      <li>
                        <h:outputLink value="#{loginController.mensagem3}">
                              <h:outputText value="#{loginController.mensagem2}"/>
                        </h:outputLink>
                      </li>
                  </ul>
             </p:fieldset>
             <h3>Fale Conosco</h3>    
             <p:panelGrid columns="2">
                     <p:column>
                       <h:outputText  value="Site"/><br></br>
                       <h:outputText  value="E-mail"/><br></br>
                       <h:outputText   value="Telefone"/><br></br>
                     </p:column>
                     <p:column>
                         <h:outputText value="#{loginController.telefone}"/>
                     </p:column>
                 </p:panelGrid>
            </h:column>  
            </p:panelGrid>
        </h:form>
 
William Maciel

William Maciel

Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar