Menu

Configuration de Timesheets

Philippe
2014-04-02
2014-05-01
  • Philippe

    Philippe - 2014-04-02

    Bonjour,

    Je vais tester Timesheets pour voir si il correspond à mes besoins (modeste)
    J'ai compilé le source avec Maven3, Le War est déployé sous Tomcat7 sur Centos 6.5
    Maintenant avant que je ne restart tomcat, comment je configure MySQL 5.x ?? Je ne vois pas de script mysql de generation de DataBase ni de tables.

    Merci d'avance
    Phil

     
  • Jean-Noel Colin

    Jean-Noel Colin - 2014-04-02

    Bonjour,

    Voici le script de création de la db actuelle; il faut configurer les paramètres de configuration du ldap (ou AD). Une fois le premier utilisateur loggé, vous pouvez faire un update de la db pour lui donner les droits admin (level = ADMIN dans users)

    Jean-Noël

     
  • Philippe

    Philippe - 2014-04-02

    Bonjour

    Pourquoi du LDAP ou du ActiveDirectory ? En plus des tables ?
    Utilisez vous une database spécifique ? mon mysql contient plusiseurs database spécifique ?

    Philippe

     
  • Jean-Noel Colin

    Jean-Noel Colin - 2014-04-02

    Bonjour,

    dans tous les environnements où j'ai déployé l'application, on utilisait du LDAP/AD pour l'authentification; j'ai donc ré-utilisé le même moyen pour ne pas forcer les utilisateurs à avoir plusieurs comptes. Je travaille avec mysql. J'ai créé un fichier readme.txt avec quelques instructions d'installation.

    Jean-Noël

     
  • Philippe

    Philippe - 2014-04-02

    Bonsoir

    Dans le répertoire congig, je ne vois pas ce fichier readme.txt, et il n'est pas joint a votre derniere réponse ?
    Je ne souhaite pas utiliser LDAP ou AD, je suis en tomcat standalone.
    Apres il faut que je vois si sous mysql, je peux forcer une database afin de ne pas melanger les tables avec d'autres application, dans le script je n'ai pas vu de use xxx.

    Bonne soirée
    Philippe

     
  • Jean-Noel Colin

    Jean-Noel Colin - 2014-04-02

    Bonjour,
    j'ai fait un commit avec les nouveaux fichiers, dont il faut faire un update de votre côté. Pour l'instant, la gestion des utilisateurs dépend d'un LDAP ou AD, il n'y a malheureusement pas d'autre possibilité. Cela ne devrait pas être compliqué d'ajouter cela, mais je n'ai pas trop le temps pour l'instant.
    Les tables sont bien stockées dans une database à part (voir la config de la datasource dans la configuration de tomcat)

     
  • Jean-Noel Colin

    Jean-Noel Colin - 2014-04-15

    Bonjour,
    J'ai adapté le code pour permettre une lecture des utilisateurs dans une base de données de type MySQL.
    Bien à vous

     
  • Philippe

    Philippe - 2014-04-28

    Bonjour,

    J'ai installé l'application sans LDAP ni AD, j'arrive au login. J'ai appercu la creation d'une table "user", mais a priori pas d'utilisateur par defaut ? donc comment je rentre la premiere fois ?

    Cordialement
    Phil

     
  • Jean-Noel Colin

    Jean-Noel Colin - 2014-04-28

    Bonjour,
    J'ai créé un nouveau script de génération de la db qui inclut maintenant une table password; il faut donc régénérer la db. Ensuite, il suffit de créer une row dans la table users ainsi qu'une row correspondante dans la table passwords. Pour générer le password, il y a un script PasswordEncoder.sh
    Jean-Noël

     
  • Philippe

    Philippe - 2014-04-29

    Bonjour

    Le script du mot de passe demande l'option -f ou -p pour mot de passe
    @echo off
    set RAD=........\target
    set CPROOT=%RAD%\iTimesheets\WEB-INF\lib

    set CLASSPATH=..;%RAD%\classes;%CPROOT%\spring-security-core-3.1.4.RELEASE.jar;%CPROOT%\commons-cli-1.2.jar

    java -Djava.util.logging.config.file=.\logging.properties -cp %CLASSPATH% be.erigo.apps.itimesheets.tools.PasswordEncoder $*
    pause

     
  • Jean-Noel Colin

    Jean-Noel Colin - 2014-04-29

    Bonjour
    Oui, il faut soit spécifier le mot de passe à encoder, soit le nom d'un fichier contenant ce mot de passe (pour ne pas que celui-ci apparaisse sur la ligne de commande). Exemple:

    ./PasswordEncoder.sh -p password
    f(password) = >$2a$10$1i8J2gQEc6zdrH8PzWPWhux.fVf5FvO01gMpILFqiYMjCZ4W1IsaW<

    Le mot de passe à copier dans la db est ce qui se trouve entre ><

     
  • Philippe

    Philippe - 2014-04-29

    re
    j'ai inseré le mot de passe crypté dans la table passwords avec les >< au debut, puis sans les ><, mais je ne rentre pas ?
    dans la table users je n'ai pas saisis tous les champs
    INSERT INTO users (userid, username,email,adminuser) VALUES (1,'phil', 'xxxxx@free.fr',true)

    Merci d'avance Phil

     
    • Jean-Noel Colin

      Jean-Noel Colin - 2014-04-29

      bonjour
      pouvez-vous essayer en positionnant les champs firstname, lastname, level (=ADMIN)? Pouvez-vous m'envoyer les logs de tomcat (catalina.out, localhost.log) et ceux de mysql (il sera peut-être nécessaire de les activer et de relancer le serveur mysql)

      Le 29 avr. 2014 à 06:54, Philippe phil89@users.sf.net a écrit :

      re
      j'ai inseré le mot de passe crypté dans la table passwords avec les >< au debut, puis sans les ><, mais je ne rentre pas ?
      dans la table users je n'ai pas saisis tous les champs
      INSERT INTO users (userid, username,email,adminuser) VALUES (1,'phil', 'xxxxx@free.fr',true)

      Merci d'avance Phil

      Configuration de Timesheets

      Sent from sourceforge.net because you indicated interest in https://sourceforge.net/p/itimesheets/discussion/1095488/

      To unsubscribe from further messages, please visit https://sourceforge.net/auth/subscriptions/

       
  • Philippe

    Philippe - 2014-04-29

    re

    j'ai une erreur dans le catalina.out

    avr. 29, 2014 6:55:13 AM be.erigo.apps.itimesheets.spring.CustomUserDetailsService loadUserByUsername
    Grave: couldn't find user: Cannot create JDBC driver of class '' for connect URL 'null'
    avr. 29, 2014 6:55:20 AM be.erigo.apps.itimesheets.spring.CustomUserDetailsService loadUserByUsername
    Infos: opening session for phil
    Cannot create JDBC driver of class '' for connect URL 'null'
    java.lang.NullPointerException
    at sun.jdbc.odbc.JdbcOdbcDriver.getProtocol(JdbcOdbcDriver.java:524)
    at sun.jdbc.odbc.JdbcOdbcDriver.knownURL(JdbcOdbcDriver.java:493)
    at sun.jdbc.odbc.JdbcOdbcDriver.acceptsURL(JdbcOdbcDriver.java:307)
    at java.sql.DriverManager.getDriver(DriverManager.java:262)
    at org.apache.tomcat.dbcp.dbcp.BasicDataSource.createConnectionFactory(BasicDataSource.java:1437)
    at org.apache.tomcat.dbcp.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1371)
    at org.apache.tomcat.dbcp.dbcp.BasicDataSource.getConnection(BasicDataSource.java:1044)
    at be.erigo.apps.itimesheets.daos.CommonResources.getConnection(CommonResources.java:72)
    at be.erigo.apps.itimesheets.daos.mysql.MySQLDAOFactory.createConnection(MySQLDAOFactory.java:58)
    at be.erigo.apps.itimesheets.daos.mysql.MySQLUserDAO.get(MySQLUserDAO.java:146)
    at be.erigo.apps.itimesheets.spring.CustomUserDetailsService.loadUserByUsername(CustomUserDetailsService.java:33)
    at org.springframework.security.authentication.dao.DaoAuthenticationProvider.retrieveUser(DaoAuthenticationProvider.java:101)
    at org.springframework.security.authentication.dao.AbstractUserDetailsAuthenticationProvider.authenticate(AbstractUserDetailsAuthenticationProvider.java:132)
    at org.springframework.security.authentication.ProviderManager.authenticate(ProviderManager.java:156)
    at org.springframework.security.authentication.ProviderManager.authenticate(ProviderManager.java:174)
    at org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter.attemptAuthentication(UsernamePasswordAuthenticationFilter.java:94)
    at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:195)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
    at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:105)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
    at org.springframework.security.web.session.ConcurrentSessionFilter.doFilter(ConcurrentSessionFilter.java:125)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
    at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
    at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:192)
    at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:160)
    at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:343)
    at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:260)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
    at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:501)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1040)
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:607)
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:315)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at java.lang.Thread.run(Thread.java:744)
    Cannot create JDBC driver of class '' for connect URL 'null'
    java.lang.NullPointerException
    at sun.jdbc.odbc.JdbcOdbcDriver.getProtocol(JdbcOdbcDriver.java:524)
    at sun.jdbc.odbc.JdbcOdbcDriver.knownURL(JdbcOdbcDriver.java:493)
    at sun.jdbc.odbc.JdbcOdbcDriver.acceptsURL(JdbcOdbcDriver.java:307)
    at java.sql.DriverManager.getDriver(DriverManager.java:262)
    at org.apache.tomcat.dbcp.dbcp.BasicDataSource.createConnectionFactory(BasicDataSource.java:1437)
    at org.apache.tomcat.dbcp.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1371)
    at org.apache.tomcat.dbcp.dbcp.BasicDataSource.getConnection(BasicDataSource.java:1044)
    at be.erigo.apps.itimesheets.daos.CommonResources.getConnection(CommonResources.java:72)
    at be.erigo.apps.itimesheets.daos.mysql.MySQLDAOFactory.createConnection(MySQLDAOFactory.java:58)
    at be.erigo.apps.itimesheets.daos.mysql.MySQLUserDAO.get(MySQLUserDAO.java:146)
    at be.erigo.apps.itimesheets.spring.CustomUserDetailsService.loadUserByUsername(CustomUserDetailsService.java:33)
    at org.springframework.security.authentication.dao.DaoAuthenticationProvider.retrieveUser(DaoAuthenticationProvider.java:101)
    at org.springframework.security.authentication.dao.AbstractUserDetailsAuthenticationProvider.authenticate(AbstractUserDetailsAuthenticationProvider.java:132)
    at org.springframework.security.authentication.ProviderManager.authenticate(ProviderManager.java:156)
    at org.springframework.security.authentication.ProviderManager.authenticate(ProviderManager.java:174)
    at org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter.attemptAuthentication(UsernamePasswordAuthenticationFilter.java:94)
    at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:195)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
    at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:105)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
    at org.springframework.security.web.session.ConcurrentSessionFilter.doFilter(ConcurrentSessionFilter.java:125)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
    at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87)
    at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
    at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:192)
    at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:160)
    at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:343)
    at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:260)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
    at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
    at org.apache.catalina.core.ApplicationFilavr. 29, 2014 6:55:20 AM be.erigo.apps.itimesheets.spring.CustomUserDetailsService loadUserByUsername
    Grave: couldn't find user: Cannot create JDBC driver of class '' for connect URL 'null'
    avr. 29, 2014 6:56:12 AM be.erigo.apps.itimesheets.spring.CustomUserDetailsService loadUserByUsername
    Infos: opening session for phil
    avr. 29, 2014 6:56:12 AM be.erigo.apps.itimesheets.spring.CustomUserDetailsService loadUserByUsername
    Grave: couldn't find user: Cannot create JDBC driver of class '' for connect URL 'null'

    le server.xml
    <Context path="/iTimesheets" docBase="/home/rtomcat/webapps/iTimesheets" debug="0">
    <Resource name="jdbc/tsdb" auth="Container" type="javax.sql.DataSource" username="tsuser" password="tspwd" driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/timesheets" maxActive="128" maxIdle="8" <br=""> validationQuery="select 1" />
    <Resource name="mail/Session" auth="Container" type="javax.mail.Session" mail.smtp.host="smtp.free.fr"/>
    </Context>

    le user BD et le user JDBC peuvent etre differents ?

    Merci d'avance
    Phil

     
  • Philippe

    Philippe - 2014-04-29

    le server.xml
    <Context path="/iTimesheets" docBase="/home/rtomcat/webapps/iTimesheets" debug="0">
    <Resource name="jdbc/tsdb" auth="Container" type="javax.sql.DataSource" username="tsuser" password="tspwd" driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/timesheets" maxActive="128" maxIdle="8" <br=""> validationQuery="select 1" />
    <Resource name="mail/Session" auth="Container" type="javax.mail.Session" mail.smtp.host="smtp.free.fr"/>
    </Context>

     
    • Jean-Noel Colin

      Jean-Noel Colin - 2014-04-29

      dans le server.xml, il faut bien déclarer les ressources suivantes:

      ~~~~~
      <Resource name="jdbc/tsdb" auth="Container" type="javax.sql.DataSource" username="username" password="password" driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/timesheets" maxActive="128" maxIdle="8" validationQuery="select 1"/>

      <Resource name="mail/Session" auth="Container" type="javax.mail.Session" mail.smtp.host="xxxxxxxxxxxxxxxx"/>
      ~~~~~~

      Jean-Noël

      Le 29 avr. 2014 à 07:07, Philippe phil89@users.sf.net a écrit :

      le server.xml

      validationQuery="select 1" />

      Configuration de Timesheets

      Sent from sourceforge.net because you indicated interest in https://sourceforge.net/p/itimesheets/discussion/1095488/

      To unsubscribe from further messages, please visit https://sourceforge.net/auth/subscriptions/

       

      Last edit: Jean-Noel Colin 2014-04-29
  • Philippe

    Philippe - 2014-04-29

    re msous tomcat/lib j'ai mysql-connector-java-5.1.15-bin.jar

    Merci d'avance
    Phil

     
  • Philippe

    Philippe - 2014-05-01

    Bonjour

    Je suis rentre dans l'appli.
    le mot de passe est sans les ><
    j'ai supprime le mysqlxxx.jar de Web-inf\lib, car j'ai le miens sous tomcat\lib
    j'ai supprime le context.xml, car tout est dans le server.xml et le name

    <Context path="/iTimesheets" docBase="/home/ztomcat/webapps/iTimesheets" debug="0">
    <Resource name="jdbc/Timesheets" xname="jdbc/tsdb" auth="Container" type="javax.sql.DataSource" username="tsuser" password="tt" driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/timesheets" maxActive="128" maxIdle="8" validationQuery="select 1"/>
    <Resource name="mail/Session" auth="Container" type="javax.mail.Session" mail.smtp.host="smtp.free.fr"/>
    </Context>

    Maintenant il me reste a voir comment ajouter des projets, car ma liste est vide

    Phil

     
    • Jean-Noel Colin

      Jean-Noel Colin - 2014-05-01

      Oui effectivement, j'ai mis les >< juste pour délimiter le mot de passe.
      Il faut modifier le niveau (champ level) de votre utilisateur en SUPER, ce qui vous donnera le droit de créer toutes les ressources de l'application

      Jean-Noël

      Le 1 mai 2014 à 09:41, Philippe phil89@users.sf.net a écrit :

      Bonjour

      Je suis rentre dans l'appli.
      le mot de passe est sans les ><
      j'ai supprime le mysqlxxx.jar de Web-inf\lib, car j'ai le miens sous tomcat\lib
      j'ai supprime le context.xml, car tout est dans le server.xml et le name

      Maintenant il me reste a voir comment ajouter des projets, car ma liste est vide

      Phil

      Configuration de Timesheets

      Sent from sourceforge.net because you indicated interest in https://sourceforge.net/p/itimesheets/discussion/1095488/

      To unsubscribe from further messages, please visit https://sourceforge.net/auth/subscriptions/

       

Log in to post a comment.