2010-08-06 8 views
19

कुछ कोड मुझे जेसीई असीमित शक्ति नीति फ़ाइलों की आवश्यकता है। मैं इस निर्भरता को मेवेन पोम फ़ाइल में जोड़ना चाहता हूं, इसलिए मेरी टीम के अन्य डेवलपर्स को व्यक्तिगत रूप से प्रत्येक को अपने सिस्टम पर लागू करने की ज़रूरत नहीं है।जेसीई असीमित शक्ति नीति फ़ाइलों को स्थापित करने के लिए मैवेन का उपयोग कैसे करूं?

मुझे एहसास है कि अंततः सिस्टम को तैनात करने के लिए जेसीई फ़ाइलों को मैन्युअल रूप से स्थापित करने की आवश्यकता होगी। यह केवल एक विकास समाधान है।

मैं सोच रहा था कि हम पॉलिसी फाइलों को हमारे भंडार में जोड़ देंगे और मैवेन इंस्टॉलेशन को संभालने में सक्षम होंगे, लेकिन मुझे हैरान है कि मैं इसे और कोई और नहीं कर रहा हूं (और इसके बारे में ब्लॉगिंग।)।

उत्तर

6

आप शायद इस कोशिश कर सकते:

  • बंडल (zip?) JCE असीमित ताकत नीति फ़ाइलें।
  • उन्हें zip निर्भरता के रूप में अपने कॉर्पोरेट भंडार में स्थापित करें।
  • dependency:unpack लक्ष्य का निर्माण अपने निर्माण के हिस्से के रूप में ${java.home}/jre/lib/security पर बनाए गए निर्भरता को अनपैक करने के लिए करें। initialize के दौरान (Unpacking specific artifacts देखें)।
14

मैं पाया है कि इस सवाल का जवाब है, जब नीति जार के लिए Maven निर्भरता के लिए googling और महसूस किया कि यह JRE स्थापना विशिष्ट है, इस प्रकार Maven निर्माण के हिस्से के रूप में इस फिक्सिंग केवल डेवलपर्स के लिए और काम करेंगे केवल आप के लिए अधिकार है जब/jre/lib/सुरक्षा फ़ोल्डर। मेरे लिए निम्नलिखित कोड हैक ज्यादा बेहतर काम करता है (पहले ही चीजें आपके आवेदन करता है में से एक के रूप में इस आह्वान):

try { 
     Field field = Class.forName("javax.crypto.JceSecurity").getDeclaredField("isRestricted"); 
     field.setAccessible(true); 
     field.set(null, java.lang.Boolean.FALSE); 
    } catch (ClassNotFoundException | NoSuchFieldException | SecurityException | IllegalArgumentException | IllegalAccessException ex) { 
     ex.printStackTrace(System.err); 
    } 
+0

धन्यवाद बार्ट, यह मेरा समय बचाया ans। – shashaDenovo

+0

हाय बार्ट, जावा 1.8 के अपडेट के साथ इस समाधान ने काम करना बंद कर दिया। क्या आप जावा 1.8 के लिए भी इसी तरह की चाल जानते हैं? – shashaDenovo

+0

हाय, मैं ओएसएक्स पर जावा 1.8.0_25 का उपयोग कर रहा हूं और यह अभी भी काम करता है। – Marcel

8

जावा 8 सुरक्षा हैक

// hack for JCE Unlimited Strength 
    Field field = Class.forName("javax.crypto.JceSecurity").getDeclaredField("isRestricted"); 
    field.setAccessible(true); 

    Field modifiersField = Field.class.getDeclaredField("modifiers"); 
    modifiersField.setAccessible(true); 
    modifiersField.setInt(field, field.getModifiers() & ~Modifier.FINAL); 

    field.set(null, false); 
+0

= 0 यह काम करता है, मैं आश्चर्यचकित हूँ। –

+0

मैं 'जावा 1.8.0_102' का उपयोग कर रहा हूं। यह मेरे लिए काम नहीं करता है :( –

संबंधित मुद्दे

 संबंधित मुद्दे