Ir para o conteúdo

 Voltar a Banco de Tal...
Tela cheia

Instalação concluída, página abre e... erro de login!

8 de Junho de 2009, 10:11 , por Desconhecido - | Ninguém seguindo este artigo por enquanto.
Visualizado 70 vezes

Prezados,

Concluí a instalação do BT em uma máquina aqui na SUSEP, autarquia federal no Rio de Janeiro. O S.O. é o Windows XP. Instalei o XAMPP, em seguida o JAVA, logo após instalei o TOMCAT. Fiz a instalação do BT, disparei o TOMCAT_START e abri a página no Internet Explorer 7.

Logo em seguida, tentei logar usando username M10001 e senha "Senha" (sem as aspas), e a página me mostra um erro de login.

Algum palpite do que possa ter dado errado?

 

Um abraço e obrigado.

Autor: Breno Santos Rocha


1717 comentários

  • F24dd96a3b3343b99b684fc44d2e5b71?only path=false&size=50&d=404Luciano Dias(usuário não autenticado)
    8 de Junho de 2009, 11:05

     

    Oi Breno,

    Na etapa de instalação do BT, você criou o banco de dados (executou os scripts de criação do banco e de carga das tabelas) ?

    Se você fez a etapa acima, você alterou o arquivo hibernate-config.xml de acordo com a configuração de seu banco de dados ?

    Se os passos acima foram executados com sucesso, peço que você mande um trecho do arquivo de log (do Tomcat) com a descrição do erro.

    Um abraço,

    Luciano.

    • B8e5b2c7aa51cb860c8738d2b75c4704?only path=false&size=50&d=404Breno Santos Rocha(usuário não autenticado)
      8 de Junho de 2009, 12:10

       

      Oi Luciano,

      Pode ser um erro no meu hibernate-config.xml. Veja: meu servidor é a máquina est428 e eu criei um usuário m10001 com senha abcde no MySQL, na aba PRIVILÉGIOS. Então aqui está meu hibernate:

      <?xml version='1.0' encoding='utf-8'?>

      <persistencia-configuracao>

          <configuracao>
              <propriedade caminhoModulosMapeamento="../config/" />
          </configuracao>

          <!-- Parametros de 'formatoConsultaDataBD':
              {0}: posição onde ficará a coluna do banco que contém a data, ex.: talento.datLancamento
                   Se a coluna armazena também a hora, deve ser especificada uma função (de banco)
                   que desconsidera a hora.
              {1}: posição onde ficará o sinal da operação, ex.: >=
              {2}: posição onde ficará a string que representa a data informada pelo usuário, ex.: 23/12/2004
                   Deve ser especificada uma função de banco que converte essa string (no formato DD/MM/YYYY) em data.
          -->
          <!-- Propriedade 'queryConsultaTimeStampBD':
              A query especificada nessa propriedade deve retornar uma única coluna
              denominada 'timestamp' contendo a data e hora do banco de dados.
          -->

          <conexao nome="conexaoPadrao, conexaoDataHoraBD, conexaoSeguranca, conexaoAutenticacao">
              <property name="hibernate.show_sql">true</property>

              <!--
              <property name="hibernate.connection.datasource">java:comp/env/jdbc/TalentosDS</property>
              -->
              <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>

              <property name="hibernate.connection.username">m10001</property>
              <property name="hibernate.connection.password">abcde</property>
              <property name="hibernate.connection.url">jdbc:mysql://est428/bancotalentos?autoReconnect=true&amp;relaxAutoCommit=true</property>
              <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>

              <substituicao chave="funcaoBDConverterStringEmData">STR_TO_DATE({0}, '%d/%m/%Y')</substituicao>
              <substituicao chave="funcaoBDRemoverHorasDeData">STR_TO_DATE(DATE_FORMAT({0}, '%d/%m/%Y'), '%d/%m/%Y')</substituicao>

              <substituicao chave="queryConsultaTimeStampBD">SELECT NOW() as timestamp</substituicao>

              <moduloMapeamento nomeArquivo="BancoTalentosApoio-hibernate.xml" caminhoRelativo="BancoTalentosApoio/hibernate-config/"/>
              <moduloMapeamento nomeArquivo="BancoTalentosGestao-hibernate.xml" caminhoRelativo="BancoTalentosGestao/hibernate-config/"/>

              <moduloMapeamento nomeArquivo="Seguranca-hibernate.xml" caminhoRelativo="Autenticacao/hibernate-config/"/>
          </conexao>
         
      </persistencia-configuracao>

      Algo que você veja logo de cara que está errado?

      Um abraço e obrigado,

      Breno

      • F24dd96a3b3343b99b684fc44d2e5b71?only path=false&size=50&d=404Luciano Dias(usuário não autenticado)
        8 de Junho de 2009, 12:22

         

        Oi Breno,

        Aparentemente está tudo correto. O arquivo que você alterou é aquele que está em WEB-INF/classes, certo ?

        Se você digitou a senha correta "Senha" (sem aspas) na página de login, você terá que postar um trecho do arquivo de log do Tomcat para procurarmos a causa do problema.

        Um abraço,

        Luciano.

        • B8e5b2c7aa51cb860c8738d2b75c4704?only path=false&size=50&d=404Breno Santos Rocha(usuário não autenticado)
          8 de Junho de 2009, 13:55

           

          Sim, Luciano, WEB-INF/classes (embora esse detalhe não esteja no manual, eu fiz nesse arquivo mesmo).

          Repare uma coisa no meu hibernate: em hibernate.connection.url, eu coloquei est428 e não est428:8080 - seria esse o erro?

          Vamos lá, como eu faço pra recuperar o log do tomcat? Pode me ensinar rapidamente?

          Um abraço,

          Breno

          • B8e5b2c7aa51cb860c8738d2b75c4704?only path=false&size=50&d=404Breno Santos Rocha(usuário não autenticado)
            8 de Junho de 2009, 23:28

             

            Conteúdo vazio.

            • F24dd96a3b3343b99b684fc44d2e5b71?only path=false&size=50&d=404Luciano Dias(usuário não autenticado)
              13 de Junho de 2009, 20:15

               

              Oi Breno,

              Pela imagem da tela, posso dizer que seu problema está relacionado com a conexão com o banco de dados ("Attempted reconnect 3 times. Giving up.").

              1) O MySQL está ativo ?

              2) Tente se conectar ao banco mysql especificando o usuário e senha que está configurado no hibernate-config.xml (se você não tem uma ferramenta para isso, dê uma olhada no SQLyog - www.​weby​og.c​om)

              3) Como você está utilizando o Windows, certifique-se de que o firewall padrão do windows não bloqueou o MySQL.

              4) Se todo o ambiente está no mesmo computador, especifique "localhost" na URL de conexão com o banco de dados (ao invés de "est428" e não coloque nenhuma porta, como ":8080") dentro do arquivo hibernate-config.xml.

              Faça os testes acima e indique o item onde obteve sucesso ou falha.

              Um abraço,

              Luciano.

              • B8e5b2c7aa51cb860c8738d2b75c4704?only path=false&size=50&d=404Breno Santos Rocha(usuário não autenticado)
                15 de Junho de 2009, 22:47

                 

                Oi Luciano,

                Em primeiro lugar, muito obrigado pela sua disposição em ajudar. Se o Banco de Talentos fosse feito em ASP e hospedado no IIS, a SUSEP teria mais de dez funcionários aptos a colocá-lo pra funcionar. O software livre ainda é um sonho distante por aqui, e sem pessoas como você, ele ficaria ainda mais distante.

                Vamos lá: por acaso o SQLyog faz a mesma coisa que o mysqladmin que vem junto com o XAMPP? Se for isso, prefiro usar este a baixar aquele. Vamos às imagens:

                A terceira tela mostra os usuários cadastrados no MySQL. Observe o usuário M10001: ele não tem privilégios GRANT. Seria esse o problema? Tentei atribuir GRANT a ele, o sistema disse "Ok, concluído!", mas depois eu volto pra essa tela e ele aparece sem privilégio GRANT. Por que isso ocorre?

                Um abraço e mais uma vez obrigado.

                • F24dd96a3b3343b99b684fc44d2e5b71?only path=false&size=50&d=404Luciano Dias(usuário não autenticado)
                  16 de Junho de 2009, 14:58

                   

                  Oi Breno,

                  O SQLyog é um ambiente para manipulação do banco de dados MySQL. Ele é muito amigável e a versão Community Edition é gratuita. Se você está familiarizado com outra, não precisa mudar.

                  Com relação ao usuário M10001 do MySQL: pelo o que entendi, ele não tem grants para dar GRANTs para outros usuários. Até aí tudo bem, pois ele não precisa dessa permissão (somente de SELECT, INSERT, UPDATE e DELETE no banco de dados "bancotalentos"). Aparentemente você concedeu esses grants para esse usuário em todos os bancos de dados (privilégios globais).

                  Pela tela que você postou, o servidor MySQL está rodando (item 1 de minha mensagem).

                  Tente executar os outros itens e me informe qual falhou.

                  Obs: para o item 2, se você quiser utilizar a linha de comando use:

                  mysql --user=M10001 --password=Senha --host=localhost --database=bancotalentos

                  Um abraço,

                  Luciano.

                  • B8e5b2c7aa51cb860c8738d2b75c4704?only path=false&size=50&d=404Breno Santos Rocha(usuário não autenticado)
                    17 de Junho de 2009, 0:09

                     

                    Oi Luciano,

                    Confira se eu fiz corretamente:

                    • F24dd96a3b3343b99b684fc44d2e5b71?only path=false&size=50&d=404Luciano Dias(usuário não autenticado)
                      17 de Junho de 2009, 9:52

                       

                      Oi Breno,

                      Você não pode confundir o usuário e senha para conexão com o banco de dados e o(s) usuário(s) e senha(s) da aplicação. Uma outra coisa é que o MySQL é sensível a letras maiúsculas e minúsculas.

                      1) De acordo com os dados de sua tabela USUARIOSISTEMA, você tem (entre outros) o usuário "m10001"/"abcde" da aplicação;

                      2) De acordo com seu hibernate-config.xml (enviado na sua 3a mensagem), o usuário para conexão com o banco de dados é "m10001"/"abcde";

                      3) De acordo com uma cópia da tela do phpmyadmin (enviada na 8a mensagem), o usuário para conexão com o banco de dados é "M10001"/(senha escondida);

                      4) Nos 3 testes que você fez (10a mensagem), somente no primeiro é que você utilizou o login do usuário da conexão correto ("M10001"), mas acredito que a senha que você criou para esse usuário no banco de dados não é "Senha" (mas provavelmente "abcde").

                      Portanto:

                      a) você tem que encontrar um usuário e senha de conexão com o MySQL que funcione;

                      b) você terá que informar esse usuário e senha no arquivo hibernate-config.xml;

                      c) se tudo estiver funcionando corretamente, você terá que utilizar um usuário e senha da aplicação (ver tabela USUARIOSISTEMA) para se logar na aplicação.

                      Um abraço,

                      Luciano.

                      • B8e5b2c7aa51cb860c8738d2b75c4704?only path=false&size=50&d=404Breno Santos Rocha(usuário não autenticado)
                        18 de Junho de 2009, 14:12

                         

                        Oi Luciano, tudo bem?

                        Cara, te peço perdão, mas sou muito iniciante em MySQL, então vou te fazer umas perguntas bem simples.

                        Ontem eu abri a linha de comando, fui até c:/xampp/mysql/bin e digitei

                        mysql -u root -p

                        Em seguida, fui solicitado a digitar uma senha, apertei ENTER sem digitar senha nenhuma e a linha de comando ficou assim:

                        mysql>

                        Entendi que tinha feito tudo certo. Aí eu digitei

                        show databases

                        e apertei ENTER. O cursor ficou só com o sinal de maior (>) e nada aconteceu. O que eu fiz de errado?

                        Um abraço.

                        • 9f51bcedb945f1cbae2e122ad460955c?only path=false&size=50&d=404Richard Barbosa(usuário não autenticado)
                          18 de Junho de 2009, 14:13

                           

                          faltou o ";"  no final do comando.

                           

                          show databases;

                           

                          • B8e5b2c7aa51cb860c8738d2b75c4704?only path=false&size=50&d=404Breno Santos Rocha(usuário não autenticado)
                            18 de Junho de 2009, 14:28

                             

                            Obrigado, Richard, acabei de repetir com o ; , era isso mesmo.

                            Quais são os comandos pra eu criar um usuário com as seguintes características:

                            Nome: userstd

                            Senha: a1b2c3d4

                            E dar a ele os privilégios obrigatórios pra depois colocá-lo no meu arquivo hibernate?

                            Um abraço.

                            • F24dd96a3b3343b99b684fc44d2e5b71?only path=false&size=50&d=404Luciano Dias(usuário não autenticado)
                              18 de Junho de 2009, 21:16

                               

                              Oi Breno,

                              Em uma rápida consulta no Google por  "criar usuario mysql" encontrei vários tutoriais sobre esse assunto. Se você pretende utilizar a linha de comando para executar esses comandos (gerenciamento de usuários e de permissões), é melhor você estudar um deles.

                              Como eu não utilizo a linha de comando, aprendi que: "Para criar usuários e conceder privilégios no MySQL, utiliza-se o comando GRANT. Ao executar um comando GRANT para um usuário que não existe, o mesmo será criado.".

                              Um abraço,

                              Luciano.

                              • B8e5b2c7aa51cb860c8738d2b75c4704?only path=false&size=50&d=404Breno Santos Rocha(usuário não autenticado)
                                23 de Junho de 2009, 11:21

                                 

                                Oi Luciano,

                                Ontem eu capturei umas telas aqui na SUSEP e o grande problema pra colocar as telas aqui no fórum é que o SERPRO proíbe serviços como o Imageshack, então eu tenho que postar de casa. Ontem eu fiquei sem rede em casa, ou seja, é desastre atrás de desastre.

                                Vamos lá: se eu executar o comando

                                mysql> GRANT ALL ON m10001.* TO bancotalentos@localhost;

                                No meu arquivo hibernate eu coloco usuário m10001 ou m10001@localhost? E a senha fica em branco, certo?

                                Um abraço,

                                Breno

                                • B8e5b2c7aa51cb860c8738d2b75c4704?only path=false&size=50&d=404Breno Santos Rocha(usuário não autenticado)
                                  23 de Junho de 2009, 12:17

                                   

                                  Luciano, resolvi o problema colocando username root e senha em branco no hibernate. Isso pode causar um problema de segurança?

                                  • F24dd96a3b3343b99b684fc44d2e5b71?only path=false&size=50&d=404Luciano Dias(usuário não autenticado)
                                    26 de Junho de 2009, 16:31

                                     

                                    Oi Breno,

                                     Se você fizer essa pergunta para os especialistas em segurança, com certeza eles te responderão que deixar um usuário root (que tem plenos poderes no banco de dados) sem senha é um problema gravíssimo de segurança.

                                    O ideal é criar um usuário e senha com as permissões mínimas necessárias para o funcionamento da aplicação (SELECT, INSERT, UPDATE e DELETE em todas as tabelas de BANCOTALENTOS, para a aplicação Banco de Talentos).

                                    Um abraço,
                                    Luciano.

Essa comunidade não possui posts nesse blog