Есть объект UserInfo у которого scope=«session». Хочется получить к нему доступ из адвайса. Добавил к нему аттрибут <aop:scoped-proxy/>. Все равно, адвайс судя по дебагу получает объект не из сессии, а фиг знает откуда.
Вот код адвайса:
public class LogonRequiredChecker {
private UserInfo userInfo;
@Autowired
public void setUserInfo(UserInfo userInfo) {
this.userInfo = userInfo;
}
public void checkLoggedUser() throws ServerBeanException {
if(!userInfo.isLoggedIn())
throw new ServerBeanException("Попытка обратиться к серверу без авторизации");
}
}
Вот код конфигурации:
<bean id="userInfo" class="ru.eldis.xdividend.regserver.beans.UserInfo" scope="session">
<aop:scoped-proxy/>
</bean>
<bean id="logonRequiredChecker" class="ru.eldis.xdividend.regserver.security.LogonRequiredChecker"/>
<aop:config proxy-target-class="true">
<aop:pointcut
expression="(@within(ru.eldis.xdividend.regserver.security.LogonRequired) or @annotation(ru.eldis.xdividend.regserver.security.LogonRequired)) and !@annotation(org.springframework.beans.factory.annotation.Autowired)"
id="logonRequiredMethod"/>
<aop:aspect id="logonRequired" ref="logonRequiredChecker">
<aop:before method="checkLoggedUser" pointcut-ref="logonRequiredMethod"/>
</aop:aspect>
</aop:config>
Как в адвайсе можно получить session объект?