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); 有必然的联系?

猜你喜欢