2012-10-23 2 views
3

안녕하세요 남자들이 질문을 방문한 후 : https://stackoverflow.com/a/5671038/1546070Java Trust Store가 모든 SSL 인증서를 허용하도록 허용 하시겠습니까?

나는 몇 가지 대답을 보았고 가장 좋은 것은 분명히 so_mv의 대답이었습니다. 이제는 그의 수입이 모든 수입과 정확한 코드로 시도 되었기 때문에 그의 대답은 시대에 뒤 떨어진 것으로 보이지만 많은 오류가 발생합니다. 가장 최근 Java에서 변경된 사항이 있는지 문서를 조사했지만 원인을 찾을 수없는 것 같습니다. 나는 그 질문에 대한 업데이트 된 대답이 나를 유익하게 할뿐만 아니라 공동체 전체에 도움이 될 것이라고 생각한다. 감사.

오류 :이 같은 방법에 넣어하도록되어

SecurityCheck.java:28: error: <identifier> expected 
     sc.init(null, new TrustManager[] { trm }, null); 
      ^
SecurityCheck.java:28: error: illegal start of type 
     sc.init(null, new TrustManager[] { trm }, null); 
       ^
SecurityCheck.java:28: error: illegal start of type 
     sc.init(null, new TrustManager[] { trm }, null); 
        ^
SecurityCheck.java:28: error: ')' expected 
     sc.init(null, new TrustManager[] { trm }, null); 
         ^
SecurityCheck.java:28: error: not a statement 
     sc.init(null, new TrustManager[] { trm }, null); 
             ^
SecurityCheck.java:28: error: ';' expected 
     sc.init(null, new TrustManager[] { trm }, null); 
              ^
SecurityCheck.java:28: error: illegal start of type 
     sc.init(null, new TrustManager[] { trm }, null); 
               ^
SecurityCheck.java:28: error: ';' expected 
     sc.init(null, new TrustManager[] { trm }, null); 
               ^
SecurityCheck.java:28: error: illegal start of type 
     sc.init(null, new TrustManager[] { trm }, null); 
                ^
SecurityCheck.java:28: error: <identifier> expected 
     sc.init(null, new TrustManager[] { trm }, null); 
                ^
SecurityCheck.java:28: error: ';' expected 
     sc.init(null, new TrustManager[] { trm }, null); 
                 ^
SecurityCheck.java:29: error: illegal start of type 
     HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory()); 
         ^
SecurityCheck.java:29: error: <identifier> expected 
     HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory()); 
                     ^
SecurityCheck.java:29: error: ';' expected 
     HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory()); 
                     ^
SecurityCheck.java:29: error: illegal start of type 
     HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory()); 
                     ^
SecurityCheck.java:29: error: <identifier> expected 
     HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory()); 
                      ^
SecurityCheck.java:29: error: ';' expected 
     HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory()); 
+0

잘못된 버전의 Java를 사용하기 때문에 작동하지 않을 수 있습니다. 링크 된 질문은 [매우 낙담하는] com.sun. * 클래스를 사용하는 것입니다 (http://stackoverflow.com/questions/1834826/it-is-a-bad-practice-to-use- suns-proprietary-java-classes)이 이유 때문에, btw. 그것을 고치는 방법에 관해서는, 나는 완전히 확신하지 않는다, 미안하다. – Brian

+0

그럼에도 불구하고 좋은 질문이지만, +1 : – Brian

+0

나는 com.sun. *을 사용하지 않는 것을 말하는 대답은 문자 그대로 신뢰 관리자를 변경합니다. 그것이 내가 말하고있는 대답이었습니다. com.sun을 사용하는 것이 얼마나 나쁜지에 대해 읽었 기 때문입니다. – Twisterz

답변

1

하여 오류보고 후 나는 문제가 당신이 class 블록에 직접 코드를 넣어 가지고 생각하지만 :

// package here 
// imports here 
public class SecurityCheck 
{ 
    public void test() throws NoSuchAlgorithmException, KeyManagementException 
           // and any other exception here 
    { 
     // alternatively to throwing the exceptions to the caller, 
     // you can handle them here using a try-catch-block 

     // code from answer you linked to here 
    } 
} 

나는 이것이 유일한 문제인지는 모르겠지만 오류를 설명 할 것입니다. 첫 번째 줄은 class 본문에 유효한 변수 선언 및 초기화이지만 sc.init(null, new TrustManager[] { trm }, null); 줄은 아니며 (문이므로) 메서드에 있어야합니다. 이것은 오류가이 줄에서 시작되는 이유이기도합니다.

+0

나는 이것을 시도한 후에도 여전히 두 가지 오류가 남았다 :'SecurityCheck.java:28 : error :보고되지 않은 예외 NoSuchAlgorithmException; 붙잡혀 야하거나 던져지기로 선언해야합니다. SSLContext sc = SSLContext.getInstance ("SSL"); SecurityCheck.java:29 : 오류 :보고되지 않은 예외 KeyManagementException; 붙잡혀 야하거나 선언되어야 함 sc.init (null, 새 TrustManager [] {trm}, null); ' – Twisterz

+0

@Twisterz이 문제를 해결하기 위해 내 대답을 업데이트했습니다 :-) – siegi

+0

그게 효과가 있지만 어떤 이유로 내가 "클래스 NoSuchAlgorithmException"및 "클래스 KeyManagementException"기호를 찾을 수 없다는 오류가 발생했습니다, 내 자신이이 문제를 해결할 수 없다는 느낌, 그냥 뭔가 누락 된합니다. – Twisterz

관련 문제