2009-12-04 1 views
0

업데이트 : 자바 프로그램으로 사용할 때 작동하는 코드. 그리고 jsp로 실행하면 다음과 같은 예외가 발생합니다. java.security.AccessControlException : 액세스 거부 (java.security.SecurityPermission insertProvider.SunJSSE)이 예외를 수정하는 방법? (jsp 프로그램에서 gmail 계정으로 메일을 보내는 동안 예외가 발생 함)

나는 아래의 코드를 기록했다. 다음과 같은 예외가 있습니다. 어떻게 해결할 수 있습니까? 이미 구글에서 검색 만 이 ** java.security.AccessControlException 솔루션을 :(찾을 수 없습니다 :

<%@ page import="java.security.*" %> 
    <%@ page import="javax.mail.internet.*" %> 
<%@ page import="javax.mail.*" %> 
<%@ page import="java.util.*" %> 
<%@ page import="java.io.*" %> 
<html> 
<body> 
<% 
String name=request.getParameter("name"); 
String from=request.getParameter("mail"); 
String message1=request.getParameter("msg"); 
try{ 
String toAddress="[email protected]"; 
String fromAddress=from; 
String fromName=name; 
String messageSubject="feedback"; 
String messageBody1=message1; 
Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider()); 
    Properties props=new Properties(); 
    props.put("mail.smtp.host","smtp.gmail.com"); 
     props.put("mail.debug","true"); 
    props.put("mail.smtp.starttls.enable","true"); 
Session session1 = Session.getDefaultInstance(props,new javax.mail.Authenticator() { 

protected PasswordAuthentication getPasswordAuthentication() { 
return new PasswordAuthentication("[email protected]", "Password"); 
} 
}); 
    Message message=new MimeMessage(session1); 
    message.setFrom(new InternetAddress(fromAddress, fromName)); 
    message.setRecipient(Message.RecipientType.TO,new InternetAddress(toAddress)); 
    message.setSubject(messageSubject); 
    message.setText(messageBody1); 
    message.setSentDate(new Date()); 
    Transport.send(message); 
} 
catch(Exception e) 
{out.println(e); 
    }  
%> 
</body> 
</html> 

+0

무슨 예외입니까? – Fortega

+0

java.security.AccessControlException : 액세스가 거부되었습니다 (java.security.SecurityPermission insertProvider.SunJSSE) – professionalcoder2010

+0

이것은 예외입니다. – professionalcoder2010

답변

0

내가 보안 공급자를 추가 생각하지 않습니다이 오류를 해결하는 데 도움이 필요 이 com.sun를 사용하여, 또한. 메일을 보낼. 수업은 일반적으로 바람직하지 않다.

Herehere JavaMail에를 사용하여 메일을 보낼 수있는 방법은.

있습니다하지만 commons-mail하는 것이 좋습니다.

+0

보안 공급자를 제거하면 예외가 발생합니다. 나는 이미 당신이주는 링크를 검사했다. 그것은 tls 속성과 관련된 예외를 준다. 나는 그것을 설정했다. 그 후에도 나는 같은 예외를 가지고있다. java.lang.SecurityException : 기본 세션에 대한 액세스가 거부되었습니다. – professionalcoder2010

+0

jsp에서 commons-mail을 사용할 수 있습니까? SUn 응용 프로그램 서버 – professionalcoder2010

+0

을 사용합니다. 그렇습니다. 메일 링 API가 아닌 일반 보안 문제가있는 것 같습니다. – Bozho

0

내 응용 프로그램에서 Gmail의 SMTP를 통해 JavaMail을 사용하여 메일을 보내고 있습니다. 정상적으로 작동합니다. 보안 공급자를 사용하지 않고 단순히 메시지 속성에 다음 속성을 추가합니다.

props.put("mail.smtp.starttls.enable","true"); 
props.put("mail.smtp.auth","true"); 
props.put("mail.mail.smtp.ssl.enable","true"); 

그게 전부입니다. 문제없이 메일이 전송됩니다. 그러나 Gmail은 웹 메일 페이지에 한 번씩 로그인하도록하거나, smtp를 통해 메일 수신을 중단 할 것입니다 (100 % 확신 할 수는 없지만 한 번 발생했습니다).

0

자바에서이 스 니펫을 시도 할 때 작동하고 있습니다. (java.security.SecurityPermission insertProvider.SunJSSE) 부정 액세스

그것이 여부 : 코드와 같이 I 작은 수정을 JSP로 변환하고 그 때

가 java.security.AccessControlException 예외를 도시 jsp에서 이메일을 보낼 수 있습니까? jsp에서 메일을 보내는 것은 이번이 처음입니다. Java에서 해당 프로그램을 성공적으로 실행합니다.

관련 문제