对jetty不是很了解,也没用过jaas,代码如下,报错。
谁能给个正确的写法,谢谢。
我的目的:使用jetty嵌入式开发,form base方式登录,不使用web.xml。很简单的功能,谢谢了。    server = new Server();
    SecurityHandler securityHandler = null;
    System.setProperty(AUTH_LOGIN_CONFIG_ENV_VAR, authLoginConfigPath);
    Constraint constraint = new Constraint();
    constraint.setName(Constraint.__FORM_AUTH);    constraint.setRoles(rolesList);
    constraint.setAuthenticate(true);    ConstraintMapping constraintMapping = new ConstraintMapping();
    constraintMapping.setConstraint(constraint);
    constraintMapping.setPathSpec("/*"); //$NON-NLS-1$    JAASUserRealm realm = new JAASUserRealm(realmName);
    realm.setLoginModuleName(loginModuleName);
    realm.setCallbackHandlerClass(callbackHandler);    FormAuthenticator authenticator = new FormAuthenticator();
    authenticator.setLoginPage("login.html"); //$NON-NLS-1$
    authenticator.setErrorPage("error.html"); //$NON-NLS-1$
    securityHandler = new SecurityHandler();
    securityHandler.setAuthenticator(authenticator);
    securityHandler.setAuthMethod(Constraint.__FORM_AUTH);
    securityHandler.setUserRealm(realm);
    securityHandler.setConstraintMappings(new ConstraintMapping[] { constraintMapping });    ContextHandlerCollection contextHandlers = new ContextHandlerCollection();
    Context servletContext = new Context(contextHandlers, "/", Context.SESSIONS); //$NON-NLS-1$
    servletContext.setResourceBase(getResourceBaseName());
    servletContext.setWelcomeFiles(getWelcomeFiles());
    contextHandlers.addHandler(securityHandler);    ResourceHandler resources = new ResourceHandler();
    resources.setResourceBase(getResourceBaseName());
    resources.setWelcomeFiles(getWelcomeFiles());
    server.setHandlers(new Handler[] { securityHandler, resources, servletContext });
错误信息为:
java.lang.IllegalStateException: No SessionHandler or SessionManager
at org.mortbay.jetty.Request.getSession(Request.java:985)
at org.mortbay.jetty.security.FormAuthenticator.authenticate(FormAuthenticator.java:127)
非常能找到答案,不胜感激。