java基础问题,看不懂Authorization

03-11-27 helfy
我最近刚学java,在看jive有很多很多不懂,很多是基础的
现在有个疑问,望高手解答
SkinUtils.java里有这么一段
public static Authorization getUserAuthorization
(HttpServletRequest request, HttpServletResponse response)
{
HttpSession session = request.getSession();

Authorization authToken = (Authorization)session.getAttribute(JIVE_AUTH_TOKEN);
if (authToken != null) {
return authToken;
}

<略...>
}
我的理解:session.getAttribute(JIVE_AUTH_TOKEN) 就相当于asp中的
authToken =session("JIVE_AUTH_TOKEN")
问题是这儿的authToken 是个接口
public interface Authorization {
public long getUserID();
public boolean isAnonymous();
}
我一直认为接口一般只有方法,提供别的类继承这个方法,而且这个Authorization也是只有方法没有变量的
我不知道Authorization authToken = (Authorization)session.getAttribute(JIVE_AUTH_TOKEN);是如何保存数据的,是真的糊涂了,是不是接口在这里还有别的解释,别的用途,希望高手多多指点

firstrainbow
2003-11-27 12:48
你应该查查“JIVE_AUTH_TOKEN”代表的是什么,有可能是实现了Authorization接口的某个类的对象,如果是这样用Authorization接口代替那个对象就是很正常的了

helfy
2003-11-27 14:32
JIVE_AUTH_TOKEN 只是一个字符串
private static final String JIVE_AUTH_TOKEN = "jive.authorization.token";

我在DbAuthorization里看到这个类继承了该接口
public final class DbAuthorization implements Authorization, Serializable
但是难道跟前面的
Authorization authToken = (Authorization)session.getAttribute(JIVE_AUTH_TOKEN); 有必然的联系?