Я новичок в shiro, в eclipse я создал динамический веб-проект, в котором я использовал для проверки входа в систему, выхода из системы, авторизации, .... функций сиро с использованием сервера tomcat, теперь я хочу для эксперимента с использованием аннотации @RequiredRoles для авторизации, для этого я установил плагин AJDT, чтобы включить AspectJ, и преобразовал мой проект, так что он имеет функцию АОП, я добавил аспект аспекта org.apache.shiro.aspectj.ShiroAnnotationAuthorizingAspectследующий для aop .xml в META-INF , но ничего не работает, из веб-формы, которую я пытаюсь вызвать сервлет, который пытается получить доступ к методу в определенном классе, этот метод аннотируется с аннотацией @RequiredRoles, хотя зарегистрированный лично не является авторизованный, он все еще может вызвать метод !!! Я чувствую, что если я что-то пропустила, особенно, что я новичок в обоих, сиро и AspectJ, высоко ценят любое просветлениеShiro Аннотации не отсканированы
ответ
Я решить мою проблему, добавив следующую строку в catalina.bat:
SET JAVA_OPTS=%JAVA_OPTS% -javaagent:"C:\Apatche\apache-tomcat-7.0.47\lib\aspectjweaver-1.7.4.jar"
Ну, если вы используете LTW и не указываете ни одного ткача, он не сможет работать. Смотрите мой комментарий о ситуации викторины выше. Кстати, вы можете принять свой собственный ответ здесь, хотя я предпочел бы вообще исключить этот вопрос. – kriegaex
Устраните вопрос !!!, вы сказали, что никогда не использовали сиро, и я видел свою проблему «интегрировать сиро с Aspectj» во многих местах, где нет ответа, если они поставлены, пожалуйста, не предполагайте, что вы должны существовать со всеми , thansk again – Moon123
Как я уже сказал, это было предложение. Вы не обязаны следовать ему. :-) Но тогда, пожалуйста, закройте вопрос, приняв свой собственный ответ. – kriegaex
Я думаю, проблема в том, что файл aop.xml не рассматривается или даже не рассматривается, я попытался включить исходный код org.apache.shiro.aspectj.ShiroAnnotationAuthorizingAspectfollowing и все работает хорошо, даже без aop.xml, может кто угодно скажите мне, как я могу назвать аспект из внешней банки? – Moon123
Я никогда не использовал Сиро и даже не знаю, для чего это хорошо, но когда я посмотрел проект [AspectJ sample project] (http://svn.apache.org/repos/asf/shiro/trunk/samples/aspectj /), представленный как часть документации, я увидел, что в сборке Maven используется плагин AspectJ Maven, т. е. используется ткачество во время компиляции (CTW), а не ткачество во время загрузки (LTW). Поскольку * aop.xml * используется только для LTW, ваше предположение о том, что оно отсутствует, кажется неправильным. Это StackOverflow. Пожалуйста, разместите код, в идеале, [SSCCE] (http://sscce.org/), чтобы помочь нам в оказании вам помощи. – kriegaex
Спасибо за ваш ответ, я пытаюсь использовать уже предварительно скомпилированный аспект, обеспечиваемый сильной реализацией, в соответствии с моими достойными знаниями как в Aspectj, так и в сиро, мне нужно LTW. я попытался включить источник аспекта в свой проект, и все работает отлично, моя проблема в том, что когда мне нужно связать мой код с внешним аспектом. я чувствую, что если проблема заключается в том, что tomcat использует LTW – Moon123