2013-02-24 2 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. 예제 사용자로 불리는 세션 범위 관리 Bean을 작성하십시오.
  3. 빈에 등록 정보 사용자 이름과 비밀번호를 만듭니다 (접근자를 잊지 마세요).
  4. 작성한 속성을 가진 바인드 양식 (예 : JSF # {userBean.username}).
  5. authorize라는 bean에 메소드를 작성하십시오.
  6. 양식에 제출 단추가있는 메서드를 바인딩하십시오.
  7. 권한 부여 방법에서 비밀번호의 해시를 생성하고 양식의 사용자 이름과 비밀번호가있는 사용자 테이블에서 행을 찾으십시오. 성공
  8. 는 다른 페이지로 널 (null) 암호 필드를 리디렉션에 기록되어있는 인식하는 사용자 이름 필드를 사용합니다.

그것은 내가 상상할 수있는 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

관련 문제