2015-10-29 2 views
4

Мы рассматриваем возможность принятия библиотеки для создания и использования веб-токенов JSON. Jose4j кажется хорошим выбором, но в библиотеке «Dependencies» указано, что «... Jose4j скомпилирован с/для Java 7, а также будет работать на Java 8 ...», и наша текущая установка выполняется на версии Java 6 (переход на более высокие версии из нашей досягаемости), поэтому наш вопрос прост.Совместимость библиотеки Jose4j с Java 6

Есть ли шанс интегрировать Jose4j с Java 6? (Не на всех, с некоторыми ограничениями, может быть достигнуто любым способом путем добавления некоторых специфических библиотек и т.д.)

Заранее спасибо

ответ

2

Получение jose4j для работы на Java 6 (возможно) возможно, но потребует перекомпиляции и некоторых изменений кода.

Там было пару вилы несколько старых версий, которые я считаю, есть обратно портирована для компиляции и запуска с Java 6 - https://bitbucket.org/yosef_kitrossky/jose4j-jdk1.6/commits/all является самым последним, что я знаю о и есть также https://bitbucket.org/ijazfx/jose4j/commits/all

Вы могли бы сделать back-port из последних тоже без особых проблем. База кода использует несколько синтаксисов с несколькими ловушками, бриллиантами и try-with-ресурсами, которые необходимо будет преобразовать в эквиваленты pre Java 7. Несколько утомительно, но не ракета. Существуют также некоторые алгоритмы, которые не будут работать. Некоторые могут просто не быть доступными во время выполнения, а некоторые, как и все связанные с AES-GCM биты, должны быть удалены из кода, чтобы получить его для компиляции.

Вы также хотите иметь безграничную силу Юрисдикция файла политики ОКО (ы) в месте, как некоторые из модульных тестов используют ключи AES, размер которых превышает 128 бит http://www.oracle.com/technetwork/java/javase/downloads/jce-6-download-429243.html

Я надеюсь, что это помогает. К сожалению, у меня просто нет полосы пропускания, чтобы поддерживать совместимую с Java версию.

+0

Спасибо за ваш ответ. Это помогает. У вас есть два «следственных» пути, те вилки, которые вы упомянули (возможно, мы сможем достичь желаемой функциональности с этим обратным переносом) и/или обратно-последней версией (с учетом ваших намеков о том, что может сработать, а что - нет). Еще раз спасибо за ваш ответ Брайан, с наилучшими пожеланиями. –

+0

недавно заметил это https://bitbucket.org/n_k_c/jose4j/commits/091fbb0a1049750861e947e61f8cf3eca95c84f7, которое является изменением компиляции на 6 в том, что я думаю, является более поздней версией –

0

У Nimbus JOSE + JWT есть поддержка Java 6 с версии 4.11.1.

От documentation, вам просто нужно сообщить classifier в зависимости:

<dependency> 
    <groupId>com.nimbusds</groupId> 
    <artifactId>nimbus-jose-jwt</artifactId> 
    <classifier>jdk16</classifier> 
    <version>[ version ]</version> 
</dependency> 

Вы можете найти доступные версии here.

Смежные вопросы