| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140 |
- package cz.hsrs.servlet.security;
- import java.sql.SQLException;
- import java.util.logging.Level;
- import javax.servlet.http.HttpServletRequest;
- import cz.hsrs.db.model.NoItemFoundException;
- import cz.hsrs.db.pool.SQLExecutor;
- import cz.hsrs.db.util.UserUtil;
- public class LoginUser {
- final HttpServletRequest req;
- private String userName;
- private UserUtil util;
- private String userLang;
- private boolean audio;
- private int rightsId;
- //private int groupId;
- public LoginUser(HttpServletRequest request) {
- req = request;
- util = new UserUtil();
- }
- /**
- * Method authenticates user if given user name and password are correct
- * @param userName of user trying to authenticate
- * @param password of user trying to authenticate
- * @return true if user was successfully authenticate, false elsewhere
- */
- public boolean athenticate(String userName, String password) {
- String right_pass = getPassword(userName);
- if(right_pass != null){
- if (right_pass.equals(password)) {
- try {
- this.userName = userName;
- this.userLang = getLanguage();
- this.audio = hasAudio();
- this.rightsId = getRights();
- int sessionInserts = util.setUserSession(userName, req.getSession().getId(), req.getRemoteHost());
- return true;
- } catch (SQLException e) {
- //** session is already in the database - so lets do the same.
- SQLExecutor.logger.log(Level.SEVERE, e.getMessage(), e.getStackTrace());
- return true;
- }
- } else{
- /* password is not correct */
- return false;
- }
- } else {
- /* user wasn't found */
- return false;
- }
- }
- public boolean isAudio() {
- return audio;
- }
- public boolean logOut(HttpServletRequest request) {
- try{
- request.getSession().invalidate();
- return true;
- } catch (Exception e) {
- return false;
- }
- }
- public boolean isAuthenticated() {
- return (userName != null);
- }
- public String getUserName() {
- return userName;
- }
- public String getUserLanguage() {
- return userLang;
- }
-
- public int getRightsID() {
- return this.rightsId;
- }
-
- public void setUserLanguage(String newLang){
- if(setLanguage(newLang)==true){
- this.userLang = newLang;
- }
- }
-
- private boolean setLanguage(String newLang){
- UserUtil uUtil = new UserUtil();
- try {
- uUtil.setUserLanguage(userName, newLang);
- return true;
- } catch (SQLException e) {
- SQLExecutor.logger.log(Level.SEVERE, e.getMessage(), e.getStackTrace());
- return false;
- }
- }
- private int getRights() throws SQLException {
- try {
- return util.getRightsId(userName);
- }catch (NoItemFoundException e) {
- throw new SQLException(e);
- }
- }
-
- private String getLanguage() throws SQLException{
- try {
- UserUtil util = new UserUtil();
- return util.getUserLanguage(userName);
- } catch (NoItemFoundException e) {
- throw new SQLException(e);
- }
-
- }
-
- private boolean hasAudio() throws SQLException{
- try {
- UserUtil util = new UserUtil();
- return util.getAudio(userName);
- } catch (NoItemFoundException e) {
- throw new SQLException(e);
- }
-
- }
-
- protected String getPassword(String un) {
- try {
- return util.getUserPassword(un);
- } catch (Exception e) {
- SQLExecutor.logger.log(Level.SEVERE, e.getMessage(), e.getStackTrace());
- return null;
- }
- }
- }
|