对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)
非常能找到答案,不胜感激。
谁能给个正确的写法,谢谢。
我的目的:使用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)
非常能找到答案,不胜感激。
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货