启动的时候修改jdk的配置去除JCE限制(记录)

36 阅读1分钟

 /**
     * 去除JCE限制
     */
    private static void removeJceLimit() {
        // 去除JCE加密限制,只限于Java1.8
        try {
            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);
        } catch (ClassNotFoundException | NoSuchFieldException | 
            SecurityException | IllegalArgumentException | IllegalAccessException ex) {
            LOGGER.error("removeJceLimit e:", ex);
        }
}