2012-10-12 5 views
1

나는 자바 메일 API를 사용하고 있습니다 :Java Mail API를 사용하여 이메일과 비밀번호의 유효성을 검사하는 방법은 무엇입니까?

내가 뭘 원하는
PasswordAuthentication valid = new PasswordAuthentication(txtEmail.getText(), 
                 txtPassword.getText()); 

if (valid != null) { 
    lblInvalid.setText("Correct information!"); 
} else { 
    lblInvalid.setText("Invalid username or password!"); 
} 

, 나는 사용자가 자신의 Gmail 사용자 이름과 비밀번호로 로그인합니다. 이메일 사용자 이름과 비밀번호가 실제 Gmail 로그인 정보인지 확인하고 싶습니다. 이메일과 비밀번호가 입력되는지 확인하려면 어떻게해야합니까 사용자의 Gmail 계정입니다.

+3

읽기 : [암호 보안에 대해 알아야 할 사항] (http://crackstation.net/hashing-security.htm) – NullUserException

+0

올바른 암호는 프로그램에서 어떻게 알 수 있습니까? – Wyzard

답변

2

Java에서 new Anything()을 수행하면 절대로 null이 반환되지 않습니다.

또한이 클래스는 JDK의 다른 부분에서 사용되는 자리 표시 자 데이터 구조 일 뿐인 것처럼 보입니다. 본질적으로 유효성 검사를 수행하지 않습니다.

이메일 주소의 유효성 검사는 대개 정규식으로 수행되며 간단하게 유지됩니다. 사용자에게 이메일 주소를 확인하는 확인 메시지를 보내야합니다.

또한 정규식을 사용하여 올바른 양식의 비밀번호를 확인할 수 있습니다.

업데이트

당신이 방출하려고하는 오류 메시지를 좀 더 자세히 살펴보면, 그것은 당신이 자신을 인증 관련 처리하는 것 같습니다. 이하지만 아주 간단한 프로토 타입 전용 솔루션을 할 수있는 방법의 톤이있다는 뭔가 같은 : 핸들러에서 다음

// create a static mapping of user/passwords: 
private static Map<String, String> logins = new HashMap<String, String>(); 

: 프로덕션 I에 사용하는거야 뭔가를

if (txtPassword.getText().equals(logins.get(txtEmail.getText()))) { 
    lblInvalid.setText("Correct information!"); 
} else { 
    lblInvalid.setText("Invalid username or password!"); 
} 

Spring Security을 강력히 추천합니다.

+0

정규식이 사용자 이름과 암호가 맞는지 어떻게 확인합니까?유효성을 검사하여 계정과 비밀번호로 이메일을 보낼 수 있도록해야합니다. –

+0

그래, 처음 답변을 한 후 깨닫고 표시된대로 업데이트했습니다. 이것은 물론 고객이 사용할 수있는 실제 프로그램이 아닙니다. 나는 Spring Security를 ​​강력히 추천한다. –

0

이것은 꽤 큰 주제입니다.

인증, 권한 부여 및 유효성 검사는 세 가지가 있습니다 (그러나 거의 관련이 있습니다).

당신은 초보자 인 경우 당신은 당신이 같은 당신의 코드에 조금 개선 할 수있는 하드 코딩 된 자격 증명을 사용하여 몇 가지 모의 인증을 시도 :

public class Authenticator { 

public boolean authenticateWithCredentials(String email, String password) { 

    boolean areValidCredentials = false; 

    //Validate credentials here with database or hardcoded 
    if(email.equals("[email protected]") && password.equals("mypassword")) { 
     areValidCredentials = true; 
    } 

    return areValidCredentials; 
} 

} 당신이 경우

public class Authenticator { 

//Singleton pattern 
private static Authenticator instance; 

public static Authenticator getInstance() { 

    if(instance == null) { 
     instance = new Authenticator(); 
    } 

    return instance; 
} 

private Authenticator() { 
    //Block creation of Authenticator instances 
} 

public boolean authenticateWithCredentials(String email, String password) { 

    boolean areValidCredentials = false; 

    //Validate credentials here with database or hardcoded 
    if(email.equals("[email protected]") && password.equals("mypassword")) { 
     areValidCredentials = true; 
    } 

    return areValidCredentials; 
} 

}

: 당신이 싱글 톤 패턴을 사용할 수있는이 클래스의 한 인스턴스를 사용할 것
+0

디자인 패턴 : 싱글 톤을 사용해야 할 때 : http://stackoverflow.com/questions/228164/on-design-patterns-when-to-use-the-singleton – zengr

+1

싱글 톤 99 %를 사용하는 것은 좋은 이유가 아닙니다. 그래서 당신이 싱글 톤에 대해 들어 본 적이없는 것처럼 객체 지향 프로그래밍을 배우는 것이라면! :) – Giorgio

관련 문제