Skip to content
Commits on Source (4)
......@@ -38,3 +38,4 @@ nbdist/
.nb-gradle/
# End of https://www.toptal.com/developers/gitignore/api/netbeans,java
/target/
......@@ -15,5 +15,6 @@ Any value defined here will override the pom.xml file value but is only applicab
-->
<org-netbeans-modules-maven-j2ee.netbeans_2e_hint_2e_j2eeVersion>1.7-web</org-netbeans-modules-maven-j2ee.netbeans_2e_hint_2e_j2eeVersion>
<org-netbeans-modules-maven-j2ee.netbeans_2e_hint_2e_deploy_2e_server>Tomcat</org-netbeans-modules-maven-j2ee.netbeans_2e_hint_2e_deploy_2e_server>
<org-netbeans-modules-projectapi.jsf_2e_language>JSP</org-netbeans-modules-projectapi.jsf_2e_language>
</properties>
</project-shared-configuration>
......@@ -15,6 +15,16 @@
</properties>
<dependencies>
<dependency>
<groupId>jstl</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<dependency>
<groupId>org.mariadb.jdbc</groupId>
<artifactId>mariadb-java-client</artifactId>
<version>3.2.0</version>
</dependency>
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-web-api</artifactId>
......
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package beans;
import java.io.Serializable;
import java.sql.Timestamp;
import java.util.Date;
/**
*
* @author Tutur
*/
public class Article extends Bean implements Serializable{
private Integer id_article;
private String author;
private String title;
private String content;
private String created;
private Boolean active;
@Override
public Integer getId() {
return this.id_article;
}
@Override
public void setId(Integer id) {
this.id_article = id;
}
public Integer getId_article() {
return id_article;
}
public void setId_article(Integer id_article) {
this.id_article = id_article;
}
public String getAuthor() {
return author;
}
public void setAuthor(String author) {
this.author = author;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
public String getCreated() {
return created;
}
public void setCreated(String created) {
this.created = created;
}
public Boolean getActive() {
return active;
}
public void setActive(Boolean active) {
this.active = active;
}
}
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package beans;
/**
*
* @author Tutur
*/
public abstract class Bean {
public abstract Integer getId();
public abstract void setId(Integer id);
}
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package beans;
import java.io.Serializable;
/**
*
* @author Tutur
*/
public class Person extends Bean implements Serializable{
private Integer id_person;
private String login;
private String password;
public Integer getId_person() {
return id_person;
}
public void setId_person(Integer id_person) {
this.id_person = id_person;
}
public String getLogin() {
return login;
}
public void setLogin(String login) {
this.login = login;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
@Override
public Integer getId() {
return this.id_person;
}
@Override
public void setId(Integer id) {
this.id_person = id;
}
}
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package controllers;
import dao.DaoArticle;
import dao.DaoPerson;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
*
* @author Tutur
*/
@WebServlet(urlPatterns = "/admin")
public class AdminIndex extends HttpServlet {
/**
* Handles the HTTP <code>GET</code> method.
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
DaoPerson daoP = new DaoPerson();
request.setAttribute("users", daoP.list());
DaoArticle daoA = new DaoArticle();
request.setAttribute("articles", daoA.list());
request.getServletContext().getRequestDispatcher("/WEB-INF/adminIndex.jsp").forward(request, response);
}
/**
* Handles the HTTP <code>POST</code> method.
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
throw new ServletException("No code here!");
}
}
\ No newline at end of file
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package controllers;
import beans.Article;
import dao.DaoArticle;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
*
* @author Tutur
*/
@WebServlet(urlPatterns = "/articles")
public class Articles extends HttpServlet {
/**
* Handles the HTTP <code>GET</code> method.
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
DaoArticle daoA = new DaoArticle();
ArrayList<Article> tabArticles = (ArrayList) daoA.list();
Collections.reverse(tabArticles);
int max = 0;
if(tabArticles.size() < 10) {
max = tabArticles.size();
} else {
max = 10;
}
List<Article> last10Articles = tabArticles.subList(0, max);
request.setAttribute("articles", last10Articles);
request.getServletContext().getRequestDispatcher("/WEB-INF/articles.jsp").forward(request, response);
}
/**
* Handles the HTTP <code>POST</code> method.
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
throw new ServletException("No code here!");
}
}
\ No newline at end of file
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package controllers;
import beans.Article;
import beans.Person;
import dao.DaoArticle;
import forms.ArticleFormChecker;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
/**
*
* @author Tutur
*/
@WebServlet(urlPatterns = "/createArticle")
public class CreateArticle extends HttpServlet {
/**
* Handles the HTTP <code>GET</code> method.
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.getServletContext().getRequestDispatcher("/WEB-INF/formArticle.jsp").forward(request, response);
Person person = (Person) request.getSession().getAttribute("bean");
}
/**
* Handles the HTTP <code>POST</code> method.
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
ArticleFormChecker checker = new ArticleFormChecker(request);
Article article = checker.checkForm();
HttpSession session = request.getSession();
if(!checker.getErrors().isEmpty()) {
request.setAttribute("errors", checker.getErrors());
request.setAttribute("article", article);
request.getServletContext().getRequestDispatcher("/WEB-INF/formArticle.jsp").forward(request, response);
} else {
DaoArticle daoA = new DaoArticle();
daoA.create(article);
session.setAttribute("article", article);
response.sendRedirect(request.getServletContext().getContextPath() + "/");
}
}
}
\ No newline at end of file
package controllers;
import dao.DaoArticle;
import dao.DaoPerson;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
*
* @author Herbert Caffarel
*/
@WebServlet(urlPatterns = "/admin/deleteArticle")
public class DeleteArticle extends HttpServlet {
/**
* Handles the HTTP <code>GET</code> method.
*
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
Integer id = null;
try {
id = Integer.valueOf(request.getParameter("id"));
DaoArticle daoa = new DaoArticle();
daoa.delete(id);
} catch (NumberFormatException ex) {
throw new RuntimeException("Suppression utilisateur impossible");
}
response.sendRedirect(
request.getServletContext().getContextPath() + "/admin"
);
}
}
package controllers;
import dao.DaoPerson;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
*
* @author Herbert Caffarel
*/
@WebServlet(urlPatterns = "/admin/deleteUser")
public class DeleteUser extends HttpServlet {
/**
* Handles the HTTP <code>GET</code> method.
*
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
Integer id = null;
try {
id = Integer.valueOf(request.getParameter("id"));
DaoPerson daop = new DaoPerson();
daop.delete(id);
} catch (NumberFormatException ex) {
throw new RuntimeException("Suppression utilisateur impossible");
}
response.sendRedirect(
request.getServletContext().getContextPath() + "/admin"
);
}
}
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package controllers;
import beans.Person;
import forms.LoginFormChecker;
import forms.LogonFormChecker;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
/**
*
* @author Tutur
*/
@WebServlet(urlPatterns = "/login")
public class Login extends HttpServlet {
/**
* Handles the HTTP <code>GET</code> method.
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.getServletContext().getRequestDispatcher("/WEB-INF/login.jsp").forward(request, response);
}
/**
* Handles the HTTP <code>POST</code> method.
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
LoginFormChecker checker = new LoginFormChecker(request);
Person person = checker.checkForm();
HttpSession session = request.getSession();
if(!checker.getErrors().isEmpty()) {
session.invalidate();
request.setAttribute("errors", checker.getErrors());
request.setAttribute("bean", person);
request.getServletContext().getRequestDispatcher("/WEB-INF/login.jsp").forward(request, response);
} else {
session.setAttribute("bean", person);
//System.out.println("Id = " + person.getId_person());
request.getServletContext().getRequestDispatcher("/index.jsp").forward(request, response);
}
}
}
\ No newline at end of file
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package controllers;
import beans.Person;
import dao.DaoPerson;
import forms.LogonFormChecker;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
/**
*
* @author Tutur
*/
@WebServlet(urlPatterns = "/logon")
public class Logon extends HttpServlet {
/**
* Handles the HTTP <code>GET</code> method.
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.getServletContext().getRequestDispatcher("/WEB-INF/logon.jsp").forward(request, response);
}
/**
* Handles the HTTP <code>POST</code> method.
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
LogonFormChecker checker = new LogonFormChecker(request);
Person person = checker.checkForm();
HttpSession session = request.getSession();
if(!checker.getErrors().isEmpty()) {
session.invalidate();
request.setAttribute("errors", checker.getErrors());
request.setAttribute("bean", checker.checkForm());
request.getServletContext().getRequestDispatcher("/WEB-INF/logon.jsp").forward(request, response);
} else {
DaoPerson daoP = new DaoPerson();
daoP.create(person);
session.setAttribute("bean", person);
response.sendRedirect(request.getServletContext().getContextPath() + "/");
}
}
}
\ No newline at end of file
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package controllers;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
/**
*
* @author Tutur
*/
@WebServlet(urlPatterns = "/logout")
public class Logout extends HttpServlet {
/**
* Handles the HTTP <code>GET</code> method.
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
HttpSession session = request.getSession();
session.invalidate();
request.getServletContext().getRequestDispatcher("/index.jsp").forward(request, response);
}
/**
* Handles the HTTP <code>POST</code> method.
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
throw new ServletException("No code here!");
}
}
\ No newline at end of file
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package controllers;
import beans.Article;
import beans.Person;
import dao.DaoArticle;
import dao.DaoPerson;
import forms.ChangePwdFormChecker;
import java.io.IOException;
import java.util.ArrayList;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import libs.PasswordAuthentication;
/**
*
* @author Tutur
*/
@WebServlet(urlPatterns = "/profil")
public class Profil extends HttpServlet {
/**
* Handles the HTTP <code>GET</code> method.
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
HttpSession session = request.getSession();
DaoArticle daoA = new DaoArticle();
ArrayList<Article> tabArticleUser = (ArrayList) daoA.listUser((Person)session.getAttribute("bean"));
System.out.println(tabArticleUser);
request.setAttribute("userArticles", tabArticleUser);
request.getServletContext().getRequestDispatcher("/WEB-INF/profil.jsp").forward(request, response);
}
/**
* Handles the HTTP <code>POST</code> method.
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
PasswordAuthentication pa = new PasswordAuthentication();
DaoPerson daoP = new DaoPerson();
HttpSession session = request.getSession();
ChangePwdFormChecker checker = new ChangePwdFormChecker(request);
Person person = checker.checkForm();
Person personSession = (Person) session.getAttribute("bean");
Person personBDD = daoP.searchPersonFromLogin(personSession);
if(!checker.getErrors().isEmpty()) {
request.setAttribute("errors", checker.getErrors());
//request.setAttribute("bean", person);
request.getServletContext().getRequestDispatcher("/WEB-INF/profil.jsp").forward(request, response);
} else {
personBDD.setPassword(pa.hash(person.getPassword().toCharArray()));
daoP.update(personBDD);
session.setAttribute("bean", personBDD);
response.sendRedirect(request.getServletContext().getContextPath() + "/");
}
}
}
\ No newline at end of file
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package dao;
import beans.Article;
import beans.Person;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.sql.Timestamp;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Properties;
import java.util.logging.Level;
import java.util.logging.Logger;
import libs.Helpers;
/**
*
* @author Tutur
*/
public class DaoArticle {
private String table;
public DaoArticle() {
Properties config = Helpers.getConfig();
this.table = config.getProperty("articletable");
}
private final Article createBean(ResultSet rs) {
Article bean = new Article();
try {
bean.setId(rs.getInt("id_article"));
bean.setAuthor(rs.getString("author"));
bean.setTitle(rs.getString("title"));
bean.setContent(rs.getString("content"));
Timestamp time = rs.getTimestamp("created");
String created = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss").format(time);
bean.setCreated(created);
bean.setActive(Boolean.TRUE);
} catch (SQLException ex) {
throw new RuntimeException("Erreur lors de la création du bean " + ex);
}
return bean;
}
public void create(Article bean) {
try {
String sql = "INSERT INTO " + table + " (author,title,content,active) VALUES(?,?,?,?)";
PreparedStatement pstmt = MariaDBConnection.getInstance().prepareStatement(sql, Statement.RETURN_GENERATED_KEYS);
pstmt.setString(1, bean.getAuthor());
pstmt.setString(2, bean.getTitle());
pstmt.setString(3, bean.getContent());
pstmt.setBoolean(4, bean.getActive());
pstmt.executeUpdate();
ResultSet generatedKeys = pstmt.getGeneratedKeys();
if(generatedKeys.first())
{
bean.setId(generatedKeys.getInt(1));
}} catch (SQLException ex) {
Logger.getLogger(DaoArticle.class.getName()).log(Level.SEVERE, null, ex);
}
}
public Collection<Article> list() {
Collection tabArticle = new ArrayList();
String sql = "SELECT * FROM " + table;
try {
PreparedStatement pstmt = MariaDBConnection.getInstance().prepareStatement(sql);
ResultSet rs = pstmt.executeQuery();
while (rs.next()) {
Article article = createBean(rs);
tabArticle.add(article);
}
rs.close();
pstmt.close();
} catch (SQLException ex) {
Logger.getLogger(DaoPerson.class.getName()).log(Level.SEVERE, null, ex);
}
return tabArticle;
}
public void delete(Integer id) {
String sql = "DELETE FROM " + table + " WHERE id_article=?";
PreparedStatement pstmt;
try {
pstmt = MariaDBConnection.getInstance().prepareStatement(sql);
pstmt.setInt(1, id);
pstmt.executeUpdate();
} catch (SQLException ex) {
Logger.getLogger(DaoPerson.class.getName()).log(Level.SEVERE, null, ex);
}
}
public Collection<Article> listUser(Person user) {
Collection tabArticle = new ArrayList();
String loginUser = user.getLogin();
String sql = "SELECT * FROM " + table + " WHERE author=?";
try {
PreparedStatement pstmt = MariaDBConnection.getInstance().prepareStatement(sql);
pstmt.setString(1, loginUser);
ResultSet rs = pstmt.executeQuery();
while (rs.next()) {
Article article = createBean(rs);
tabArticle.add(article);
}
rs.close();
pstmt.close();
} catch (SQLException ex) {
Logger.getLogger(DaoPerson.class.getName()).log(Level.SEVERE, null, ex);
}
return tabArticle;
}
}
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package dao;
import beans.Article;
import beans.Person;
import java.io.IOException;
import java.io.InputStream;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Properties;
import java.util.logging.Level;
import java.util.logging.Logger;
import libs.Helpers;
/**
*
* @author Tutur
*/
public class DaoPerson {
private final String table;
public DaoPerson() {
Properties config = Helpers.getConfig();
this.table = config.getProperty("usertable");
}
private final Person createBean(ResultSet rs) {
Person bean = new Person();
try {
bean.setId(rs.getInt("id_person"));
bean.setLogin(rs.getString("login"));
bean.setPassword(rs.getString("password"));
} catch (SQLException ex) {
throw new RuntimeException("Erreur lors de la création du bean " + ex);
}
return bean;
}
public void create(Person bean) {
try {
String sql = "INSERT INTO " + table + " (login,password) VALUES(?,?)";
PreparedStatement pstmt = MariaDBConnection.getInstance().prepareStatement(sql, Statement.RETURN_GENERATED_KEYS);
pstmt.setString(1, bean.getLogin());
pstmt.setString(2, bean.getPassword());
pstmt.executeUpdate();
ResultSet generatedKeys = pstmt.getGeneratedKeys();
if(generatedKeys.first())
{
bean.setId(generatedKeys.getInt(1));
}} catch (SQLException ex) {
Logger.getLogger(DaoPerson.class.getName()).log(Level.SEVERE, null, ex);
}
}
public Person searchPersonFromLogin(Person person) {
Person personFound = null;
try {
String sql = "SELECT * FROM " + table + " WHERE login = ?";
PreparedStatement pstmt = MariaDBConnection.getInstance().prepareStatement(sql);
pstmt.setString(1, person.getLogin());
ResultSet rs = pstmt.executeQuery();
if (rs.first()) {
personFound = this.createBean(rs);
}
} catch (SQLException ex) {
throw new RuntimeException("Erreur lors de la fonction de recherche");
}
return personFound;
}
public void update(Person obj) {
String sql = "UPDATE " + table + " SET login=?, password=? WHERE id_person" + "=?";
try {
PreparedStatement pstmt = MariaDBConnection.getInstance().prepareStatement(sql);
pstmt.setString(1, obj.getLogin());
pstmt.setString(2, obj.getPassword());
pstmt.setInt(3, obj.getId_person());
pstmt.executeUpdate();
} catch (SQLException ex) {
Logger.getLogger(DaoPerson.class.getName()).log(Level.SEVERE, null, ex);
}
}
public Collection<Person> list() {
Collection tabPerson = new ArrayList();
String sql = "SELECT * FROM " + table;
try {
PreparedStatement pstmt = MariaDBConnection.getInstance().prepareStatement(sql);
ResultSet rs = pstmt.executeQuery();
while (rs.next()) {
Person person = createBean(rs);
tabPerson.add(person);
}
rs.close();
pstmt.close();
} catch (SQLException ex) {
Logger.getLogger(DaoPerson.class.getName()).log(Level.SEVERE, null, ex);
}
return tabPerson;
}
public void delete(Integer id) {
String sql = "DELETE FROM " + table + " WHERE id_person=?";
PreparedStatement pstmt;
try {
pstmt = MariaDBConnection.getInstance().prepareStatement(sql);
pstmt.setInt(1, id);
pstmt.executeUpdate();
} catch (SQLException ex) {
Logger.getLogger(DaoPerson.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package dao;
import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.Properties;
import java.util.logging.Level;
import java.util.logging.Logger;
import libs.Helpers;
/**
*
* @author Tutur
*/
public class MariaDBConnection {
private static Connection connection;
private MariaDBConnection() {
}
public static Connection getInstance() {
if(connection == null) {
try {
Properties config = Helpers.getConfig();
Class.forName(config.getProperty("driver"));
connection = DriverManager.getConnection(
config.getProperty("protocol") + "://"
+ config.getProperty("host") + ":"
+ config.getProperty("port") + "/"
+ config.getProperty("dbname")
,config.getProperty("login")
,config.getProperty("password")
);
} catch (ClassNotFoundException | SQLException ex) {
throw new RuntimeException("Probleme de connexion à la BDD, arrêt du programme " + ex);
}
}
return connection;
}
}
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package filters;
import beans.Person;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.annotation.WebFilter;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
/**
*
* @author Tutur
*/
@WebFilter(urlPatterns = "/admin/*")
public class CheckAdmin implements Filter {
@Override
public void init(FilterConfig filterConfig) throws ServletException {
}
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
try {
doBefore(request, response);
chain.doFilter(request, response);
doAfter(request, response);
} catch (ServletException ex) {
System.err.println("you are not admin");
}
}
@Override
public void destroy() {
}
private void doBefore(ServletRequest request, ServletResponse response) throws IOException, ServletException {
HttpServletRequest req = (HttpServletRequest) request;
HttpServletResponse resp = (HttpServletResponse) response;
HttpSession session = req.getSession(false);
Person personSession = (Person) session.getAttribute("bean");
if (session == null || !"admin".equals(personSession.getLogin())) {
resp.sendRedirect(
req.getServletContext().getContextPath() + "/");
throw new ServletException("You are not admin");
}
}
private void doAfter(ServletRequest request, ServletResponse response) {
}
}
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package filters;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.nio.charset.StandardCharsets;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.annotation.WebFilter;
import javax.servlet.http.HttpServletRequest;
/**
*
* @author Tutur
*/
@WebFilter(urlPatterns = "/*")
public class SetEncoding implements Filter{
@Override
public void init(FilterConfig filterConfig) throws ServletException {
}
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
doBefore(request,response);
chain.doFilter(request, response);
doAfter(request,response);
}
@Override
public void destroy() {
}
private void doBefore(ServletRequest request, ServletResponse response) {
try {
HttpServletRequest req = (HttpServletRequest) request;
req.setCharacterEncoding(StandardCharsets.UTF_8.name());
} catch (UnsupportedEncodingException ex) {
Logger.getLogger(SetEncoding.class.getName()).log(Level.SEVERE, null, ex);
}
}
private void doAfter(ServletRequest request, ServletResponse response) {
}
}