2009-08-25 4 views
0

Мы пытаемся использовать SecurityManager с Resin 3.1.9 и запускаем следующую проблему: CodeSource.getLocation() возвращает null для скомпилированных JSP.Как предоставить разрешения JSP с файлом политики SecurityManager в Resin?

Это означает, что мы не можем использовать определенную кодовые в пункте гранта в нашем файле политики, например:

grant codeBase "file:/path_to_resin/runtime/work/-" { 
OR grant codeBase "file:/path_to_resin/webapp/JSP-source/-" { 
    //...some jsp-specific permissions 
}; 

Вместо этого мы должны использовать универсальный пункт гранта:

grant { 
    //..some jsp-specific permissions. Unfortunately, these will be applied 
    //to all code!!! 
}; 

Is есть ли способ заставить JSP иметь правильный CodeSource? Мы хотели бы ограничить разрешения сторонних библиотек, но предоставить разрешения нашим собственным JSP. Если мы не сможем указать JSP в файле политики, возможно, мы не сможем это сделать или что вы думаете?

EDIT: Мы развертываем JSP как есть, поэтому не перекомпилируйте их. Это может иметь какое-то отношение к проблеме.

ответ

0

я получил ответ через список рассылки Смолы и подумал, что я его здесь:

Кажется, что смола 3 имеет ошибку с этим и есть теперь an issue for it. В основном так, что мы пытались должны работать, или, по крайней мере, он работает на Ресина 2. Таким образом, это должно работать:

grant codeBase "file:/path_to_resin/runtime/work/-" { 
    //...some jsp-specific permissions 
}; 

Дев свинца для смолы сказал следующее: «Ну, менеджер по безопасности убивает производительность, поэтому мы как правило, препятствуют этому ». Возможно, нам придется пересмотреть, если разумно использовать SecurityManager вообще. См. Мой другой вопрос Should I use Security Manager in Java web applications? для более подробного обсуждения темы.

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

  • Нет связанных вопросов^_^