GWT-RPC:无法在服务器端使用 javax.security.auth.Subject
GWT-RPC: cannot use javax.security.auth.Subject on server-side
我正在尝试为我的 GWT/GWTP 应用实施 RPC 授权服务,但我遇到了一些问题。 Intellij IDEA 将在服务器端使用 Subject class 视为错误:
Class 'javax.security.auth.Subject' is not present in JRE Emulation Library so it cannot be used in client mode
这是代码片段:
import javax.security.auth.Subject;
public class LoginServiceImpl extends RemoteServiceServlet implements LoginService {
public void loginUser(String login, String password) {
Subject subject = UserContext.createSubject(connection, login, password, null);
}
}
当我尝试在服务器端使用此 class 时,为什么它会提到 'client mode'?
它并没有抱怨:
public class LoginServiceImpl extends RemoteServiceServlet implements LoginService {
public void loginUser(String login, String password) {
UserContext.get().pushSubject(
UserContext.createSubject(connection, login, password, null)
);
}
}
为什么 IDEA 将前者视为错误但不抱怨后者?
已解决。
问题是因为 *.gwt.xml 文件中的冗余行:
<source path="server"/>
我正在尝试为我的 GWT/GWTP 应用实施 RPC 授权服务,但我遇到了一些问题。 Intellij IDEA 将在服务器端使用 Subject class 视为错误:
Class 'javax.security.auth.Subject' is not present in JRE Emulation Library so it cannot be used in client mode
这是代码片段:
import javax.security.auth.Subject;
public class LoginServiceImpl extends RemoteServiceServlet implements LoginService {
public void loginUser(String login, String password) {
Subject subject = UserContext.createSubject(connection, login, password, null);
}
}
当我尝试在服务器端使用此 class 时,为什么它会提到 'client mode'? 它并没有抱怨:
public class LoginServiceImpl extends RemoteServiceServlet implements LoginService {
public void loginUser(String login, String password) {
UserContext.get().pushSubject(
UserContext.createSubject(connection, login, password, null)
);
}
}
为什么 IDEA 将前者视为错误但不抱怨后者?
已解决。 问题是因为 *.gwt.xml 文件中的冗余行:
<source path="server"/>