जावा एप्लेट: AccessControlException फिर से

फिर भी हस्ताक्षरित एप्लेट के विशेषाधिकारों के साथ जारी करें।

मैं स्थानीय ड्राइव से फ़ाइल को हटाने के लिए अपना स्वयं हस्ताक्षरित एप्लेट चाहता हूं, लेकिन मुझे अपवाद मिलता है:

java.security.AccessControlException: access denied
  (java.io.FilePermission /Users/me/tmp.txt delete)

यहां मैं हटाने का आह्वान करता हूं:

    public void deleteFile( String path )
    {
        AccessController.doPrivileged( new Deleter( path ));
    }

और यह वर्ग फ़ाइल हटा देता है:

class Deleter implements PrivilegedAction {
    public Deleter( String path ) {
        m_path = path;
    }

    public Object run()
    {
        File file = new File( m_path );
        file.delete();
        return null;
    }

    private String m_path;
};

एचटीएमएल कोड है:



 

हल:

मुझे पॉलिसी जोड़ने की जरूरत है (ओएस एक्स के तहत):

cat >> ~/.java.policy

grant {
  permission java.io.FilePermission "<>", "delete";   
};
0
जोड़ा संपादित
विचारों: 1
मुझे समझ में नहीं आता कि यह एक हस्ताक्षरित एप्लेट के लिए क्यों एक मुद्दा है
जोड़ा लेखक Jakub M., स्रोत
त्रुटि ... कोई नीति फ़ाइल नहीं है, क्या यह वैकल्पिक हस्ताक्षर करने के लिए नहीं है? (स्पष्ट रूप से नहीं :)
जोड़ा लेखक Jakub M., स्रोत
@EJP: हाँ, विश्वास, सभी स्वीकार करें, आदि
जोड़ा लेखक Jakub M., स्रोत
क्या आपने अपने ब्राउज़र को अपने स्वयं के हस्ताक्षरित प्रमाणपत्र पर भरोसा करने के लिए कहा था जब उसने आपको पूछा था?
जोड़ा लेखक EJP, स्रोत
क्या आप समझते हैं कि यह एक सुरक्षा मुद्दा क्यों है?
जोड़ा लेखक Jivings, स्रोत
ठीक है, आपकी पॉलिसी फाइल में क्या है?
जोड़ा लेखक Jivings, स्रोत

1 उत्तर

अनुमतियां देने के लिए, एप्लेट को नीति फ़ाइल की आवश्यकता होती है। यह परिभाषित करता है कि वे उपयोगकर्ता सिस्टम के साथ क्या कर सकते हैं। आप यहां अधिक जानकारी प्राप्त कर सकते हैं।

0
जोड़ा