2013-02-24 3 views
0

Я новичок в Java EE и не знаю, как должна быть внедрена система входа. Скажем, у меня есть база данных mysql с пользователем таблицы, и она получила имя пользователя и пароль. Как я могу реализовать безопасную систему входа? Под защитой я подразумеваю базовую веб-безопасность, такую ​​как хэширование пароля и SSL-соединение при отправке пароля.Java EE простой логин

Я смотрю form based login, но я могу понять, как можно получить данные из базы данных по встроенной странице j_security_check? Разве мне не нужно каким-либо образом определять строку подключения, и где я могу определить, использовать хэш и SSL?

Я использую tomcat v7.0.

+0

как защитить свой URL? этот Q предлагает широкую тему обсуждения – user1428716

+0

Что вы подразумеваете под защитой URL. – Frozendragon

ответ

3

Первое: не хранить пароли в базе данных. Вы можете хранить хеши.

Вот простой способ:

  1. Добавить форму с полями, имя пользователя и пароль.
  2. Создайте управляемый компонент, обработанный сеансом, который называется в качестве примера User.
  3. Создайте свойства имя пользователя и пароль в bean-компоненте (не забывайте об аксессуарах).
  4. Связать форму со свойствами, которые вы создали (в качестве примера в JSF # {userBean.username}).
  5. Создайте метод в bean, который называется authorize.
  6. Привязать метод с помощью кнопки отправки на форме.
  7. В режиме авторизации создайте хэш пароля и попробуйте найти строку в таблице пользователей, в которой есть имя пользователя и пароль из формы.
  8. В случае успеха перенаправляет на другую страницу, пустое поле пароля и использовать поле имя пользователя, чтобы распознать, кто вошел в систему.

Это самый простой способ реализации авторизации в Java EE я могу себе представить.

Поместите форму, как это:

<h:form id="loginForm"> 
    <h:inputText maxlength="255" size="20" tabindex="10" value="#{userBean.login}" 
        styleClass="inputField" id="username"/> 
    <h:inputSecret maxlength="255" size="20" tabindex="20" 
        value="#{userBean.password}" styleClass="inputField" id="password"/> 
    <h:commandButton value="login" 
           action="#{userBean.validate}" id="submit"/> 
</h:form> 

И управляемый компонент:

@ManagedBean(name = "userBean") 
@SessionScoped 
public class UserBean { 
    private User user; 
    private String login; 
    private String password; 

    @PostConstruct 
    private void init() { 
     this.user = new User(); 
    } 

    public String validate() { 
     // Validate given login and password here 
     // When user seems to be valid assign it to this.user and return "/someFileForAuthorizedUsers.xhtml"; 
     this.login = null; 
     this.password = null; 

     return null; 
    } 
} 

Не забывайте о аксессорах. JSF нуждается в них.

+0

Не могли бы вы привести пример кода? – Frozendragon

Смежные вопросы