Skip to content
Snippets Groups Projects
Commit 1e3a9121 authored by ginquin's avatar ginquin
Browse files

añadido config para conectarse a postgress en heroku

parent 100876a7
No related branches found
No related tags found
1 merge request!1Rama postgres
......@@ -95,16 +95,21 @@
<version>3.1.2.RELEASE</version>
</dependency>
<!-- JPA(Hibernate) and MYSQL dependencies -->
<!-- JPA(Hibernate) and Postgres dependencies -->
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
<version>4.0.0.Final</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.47</version>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
<version>42.2.5</version>
</dependency>
<dependency>
<groupId>commons-dbcp</groupId>
<artifactId>commons-dbcp</artifactId>
<version>1.4</version>
</dependency>
<!-- extra -->
......
<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence" version="2.0">
<persistence-unit name="smellswisdomapp" transaction-type="RESOURCE_LOCAL">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<properties>
<property name="hibernate.dialect"
value="org.hibernate.dialect.MySQLDialect" />
<property name="hibernate.connection.driver_class"
value="com.mysql.jdbc.Driver" />
<property name="hibernate.connection.username" value="root" />
<property name="hibernate.connection.password" value="root" />
<property name="hibernate.show_sql" value="true" />
<property name="hibernate.connection.url"
value="jdbc:mysql://localhost:3306/smellswisdombd" />
</properties>
</persistence-unit>
<persistence-unit name="jpaData" />
</persistence>
-- phpMyAdmin SQL Dump
-- version 4.6.6deb5
-- https://www.phpmyadmin.net/
--
-- Servidor: localhost:3306
-- Tiempo de generación: 12-03-2019 a las 02:13:48
-- Versión del servidor: 5.7.25-0ubuntu0.18.04.2
-- Versión de PHP: 7.2.15-0ubuntu0.18.04.1
SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8mb4 */;
--
-- Base de datos: `smellswisdombd`
--
-- --------------------------------------------------------
--
-- Estructura de tabla para la tabla `authorities`
--
CREATE TABLE `authorities` (
`authority` varchar(50) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
--
-- Volcado de datos para la tabla `authorities`
--
INSERT INTO `authorities` (`authority`) VALUES
('ROLE_ADMIN'),
('ROLE_USER');
-- --------------------------------------------------------
--
-- Estructura de tabla para la tabla `users`
--
CREATE TABLE `users` (
`username` varchar(50) NOT NULL,
`D_APEL1` varchar(50) DEFAULT NULL,
`D_APEL2` varchar(50) DEFAULT NULL,
`D_EMAIL` varchar(100) DEFAULT NULL,
`D_NOMBRE` varchar(50) DEFAULT NULL,
`password` varchar(50) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
--
-- Volcado de datos para la tabla `users`
--
INSERT INTO `users` (`username`, `D_APEL1`, `D_APEL2`, `D_EMAIL`, `D_NOMBRE`, `password`) VALUES
('zkoss', 'uva', 'inf', '1234@gmail.com', 'abcd', '81dc9bdb52d04dc20036dbd8313ed055');
-- --------------------------------------------------------
--
-- Estructura de tabla para la tabla `user_authorities`
--
CREATE TABLE `user_authorities` (
`USERNAME` varchar(50) NOT NULL,
`AUTHORITY` varchar(50) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
--
-- Volcado de datos para la tabla `user_authorities`
--
INSERT INTO `user_authorities` (`USERNAME`, `AUTHORITY`) VALUES
('zkoss', 'ROLE_ADMIN'),
('zkoss', 'ROLE_USER');
--
-- Índices para tablas volcadas
--
--
-- Indices de la tabla `authorities`
--
ALTER TABLE `authorities`
ADD PRIMARY KEY (`authority`),
ADD UNIQUE KEY `authority` (`authority`);
--
-- Indices de la tabla `users`
--
ALTER TABLE `users`
ADD PRIMARY KEY (`username`),
ADD UNIQUE KEY `username` (`username`);
--
-- Indices de la tabla `user_authorities`
--
ALTER TABLE `user_authorities`
ADD PRIMARY KEY (`USERNAME`,`AUTHORITY`),
ADD KEY `FKCE1004AD6DE8BDD4` (`AUTHORITY`),
ADD KEY `FKCE1004AD8FC6EC93` (`USERNAME`);
--
-- Restricciones para tablas volcadas
--
--
-- Filtros para la tabla `user_authorities`
--
ALTER TABLE `user_authorities`
ADD CONSTRAINT `FKCE1004AD6DE8BDD4` FOREIGN KEY (`AUTHORITY`) REFERENCES `authorities` (`authority`),
ADD CONSTRAINT `FKCE1004AD8FC6EC93` FOREIGN KEY (`USERNAME`) REFERENCES `users` (`username`);
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
package es.uva.inf.tfg.ginquin.smellswisdom.controller;
import java.util.HashSet;
import java.util.Set;
import org.zkoss.lang.Strings;
import org.zkoss.util.resource.Labels;
import org.zkoss.zk.ui.Component;
import org.zkoss.zk.ui.select.SelectorComposer;
import org.zkoss.zk.ui.select.annotation.Listen;
import org.zkoss.zk.ui.select.annotation.VariableResolver;
import org.zkoss.zk.ui.select.annotation.Wire;
import org.zkoss.zk.ui.select.annotation.WireVariable;
import org.zkoss.zk.ui.util.Clients;
import org.zkoss.zkplus.spring.DelegatingVariableResolver;
import org.zkoss.zul.Label;
import org.zkoss.zul.Textbox;
import org.zkoss.zul.Window;
import es.uva.inf.tfg.ginquin.smellswisdom.domain.Authority;
import es.uva.inf.tfg.ginquin.smellswisdom.domain.User;
import es.uva.inf.tfg.ginquin.smellswisdom.services.AuthorityService;
import es.uva.inf.tfg.ginquin.smellswisdom.services.UserService;
import es.uva.inf.tfg.ginquin.smellswisdom.utility.Utilities;
@VariableResolver(DelegatingVariableResolver.class)
public class RegisterController extends SelectorComposer<Component> {
/**
*
*/
private static final long serialVersionUID = 1L;
@Wire
Window singinModal;
@Wire
Textbox username;
@Wire
Textbox password;
@Wire
Textbox repassword;
@Wire
Textbox name;
@Wire
Textbox surname1;
@Wire
Textbox surname2;
@Wire
Textbox email;
@Wire
Label m_user;
@Wire
Label m_pwd;
@WireVariable
UserService userService;
@WireVariable
AuthorityService authorityService;
@Listen("onClick=#bsave")
public void saveUser() {
if(!validateRegister()) {
return;
}
User user = new User();
//guardamos todos los username en minúsculas
String uname= username.getValue().trim().toLowerCase();
user.setUsername(uname);
//Encriptamos la contraseña con md5
String pEncrypt= Utilities.encryptMD5(password.getValue());
user.setPassword(pEncrypt);
user.setDnombre(name.getValue().trim());
user.setDapel1(surname1.getValue().trim());
String surname2String= surname2.getValue().trim();
if(!Strings.isBlank(surname2String)) {
user.setDapel2(surname2String);
}
user.setDemail(email.getValue().trim());
Set<Authority> roles = new HashSet<Authority>();
roles.add(authorityService.get("ROLE_USER"));
user.setAuthorities(roles);
userService.saveUsuario(user);
String messageSuccessful = Labels.getLabel("register.savedinformation");
Clients.showNotification(messageSuccessful,"info",
singinModal,"middle_center" , 2000);
singinModal.detach();
}
@Listen("onClick=#bcancel")
public void cancel() {
singinModal.detach();
}
private boolean validateRegister() {
String uname= username.getValue().trim().toLowerCase();
String passwd = password.getValue();
String repasswd = repassword.getValue();
if(userService.getUsuario(uname)!=null) {
m_user.setValue(Labels.getLabel("register.erroruserExist"));
return false;
}
if (!repasswd.equals(passwd)) {
m_pwd.setValue(Labels.getLabel("register.errorpasswordNotSame"));
return false;
}
return true;
}
}
......@@ -19,10 +19,21 @@
<import resource="applicationContext-security.xml"/>
<!-- jpa(hibernate) configuration -->
<!-- jpa(hibernate) configuration for heroku -->
<bean class="java.net.URI" id="dbUrl">
<constructor-arg value="#{systemEnvironment['DATABASE_URL']}"/>
</bean>
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
<property name="url" value="#{ 'jdbc:postgresql://' + @dbUrl.getHost() + ':' + @dbUrl.getPort() + @dbUrl.getPath() }"/>
<property name="username" value="#{ @dbUrl.getUserInfo().split(':')[0] }"/>
<property name="password" value="#{ @dbUrl.getUserInfo().split(':')[1] }"/>
</bean>
<bean id="entityManagerFactory"
class="org.springframework.orm.jpa.LocalEntityManagerFactoryBean">
<property name="persistenceUnitName" value="smellswisdomapp"/>
<property name="dataSource" ref="dataSource" />
<property name="persistenceUnitName" value="jpaData"/>
</bean>
<bean id="transactionManager"
......@@ -30,5 +41,6 @@
<property name="entityManagerFactory" ref="entityManagerFactory" />
</bean>
<tx:annotation-driven />
</beans>
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment