Hello Rüdiger,
I hope I understood your problem correctly.
AFAIK the ISessionService implementation in
org.eclipse.riena.security.services is bind to an implementation of
ISessionStore (to store the former created session). This means any
implementation of ISessionStore must be registered in your OSGi
framework on server side. You could for example install bundle
org.eclipse.riena.security.simpleservices in your server-side OSGi
framework This bundle provides such a service implementation. The
NullPointerException then should be solved.
Hope this hint helps you.
Greetz,
Carsten
"Rüdiger Rensinghoff-Kranen" <info@xxxxxxxxxxxxxxxxxxxxx> schrieb im
Newsbeitrag news:gtv6eb$ri1$1@xxxxxxxxxxxxxxxxxxxx
Hello,
with somewhat modified copy off sample.app.server and
security.simpleservices I try to login from a client application.
I'm not experienced in dealing with OSGi and Riena. All I found was
that in AuthenticationService a Session should be created from
SessionService.generateSession but store is null. I don't know what's
wrong. Below status off the server and error log.
Rüdiger
07.05.2009 18:01:06 org.mortbay.http.HttpServer doStart
INFO: Version Jetty/5.1.x
07.05.2009 18:01:07 org.mortbay.util.Container start
INFO: Started
org.eclipse.equinox.http.jetty.internal.Servlet25Handler@16fdcc1
07.05.2009 18:01:07 org.mortbay.util.Container start
INFO: Started HttpContext[/,/]
07.05.2009 18:01:07 org.mortbay.http.SocketListener start
INFO: Started SocketListener on 0.0.0.0:8080
07.05.2009 18:01:07 org.mortbay.util.Container start
INFO: Started org.mortbay.http.HttpServer@704cf5
07.05.2009 18:01:11 org.mortbay.jetty.servlet.ServletHandler$Context log
INFO:
org.eclipse.equinox.http.registry.internal.ServletManager$ServletWrapper:
call protocol=hessian,
url=http://192.168.178.20:8080/hessian/AuthenticationService,
interface=org.eclipse.riena.security.common.authentication.IAuthenticationService
2009.05.07 18:02:05 CEST rrk@rrk-211305ebe29 DEBUG
[SocketListener0-1]
de.psgl400.server.security.authentication.loginmodule.ServerLoginModule
remote login() : testuser
2009.05.07 18:02:05 CEST rrk@rrk-211305ebe29 DEBUG
[SocketListener0-1]
de.psgl400.server.security.authentication.loginmodule.ServerLoginModule
remote login password ok = true
2009.05.07 18:02:52 CEST rrk@rrk-211305ebe29 DEBUG
[SocketListener0-1]
de.psgl400.server.security.authentication.loginmodule.ServerLoginModule
after commit subject.getPrincipals().add(new
SimplePrincipal(username)) : testuser
ss
Framework is launched.
id State Bundle
0 ACTIVE org.eclipse.osgi_3.5.0.v20090311-1300
Fragments=4
1 ACTIVE org.eclipse.riena.security.services_1.1.0.M6
2 ACTIVE org.eclipse.riena.communication.core_1.1.0.M6
3 ACTIVE org.eclipse.riena.core_1.1.0.M6
4 RESOLVED org.eclipse.equinox.transforms.hook_1.0.100.v20090306-1900
Master=0
5 ACTIVE org.eclipse.riena.communication.publisher.hessian_1.1.0.M6
6 ACTIVE org.mortbay.jetty_5.1.14.v200806031611
7 ACTIVE org.apache.commons.logging_1.0.4.v20080605-1930
8 ACTIVE org.eclipse.equinox.app_1.2.0.v20090306-1900
9 ACTIVE org.eclipse.core.runtime.compatibility.auth_3.2.100.v20070502
10 ACTIVE org.eclipse.riena.server_1.1.0.M6
11 ACTIVE de.psgl400.server_1.0.0
12 ACTIVE org.eclipse.equinox.common_3.5.0.v20090310-1800
13 ACTIVE de.psgl400.server.security_1.0.0
14 ACTIVE org.eclipse.riena.security.common_1.1.0.M6
15 ACTIVE org.eclipse.core.contenttype_3.4.0.v20090302
16 ACTIVE org.eclipse.core.variables_3.2.200.v20090302-1500
17 ACTIVE org.eclipse.equinox.http.registry_1.0.200.v20090306-1900
18 ACTIVE org.eclipse.core.jobs_3.4.100.v20090213
19 ACTIVE org.eclipse.equinox.http.servlet_1.0.200.v20090306-1900
20 ACTIVE org.eclipse.riena.communication.factory.hessian_1.1.0.M6
21 ACTIVE de.psgl400.core_1.0.0
22 ACTIVE org.eclipse.equinox.security_1.0.100.v20090306-1900
Fragments=27
23 ACTIVE com.caucho.hessian_3.1.3
24 ACTIVE javax.servlet_2.4.0.v200806031604
25 ACTIVE org.eclipse.core.runtime_3.5.0.v20090306
26 ACTIVE org.eclipse.riena.communication.publisher_1.1.0.M6
27 RESOLVED
org.eclipse.equinox.security.win32.x86_1.0.100.v20090306-1900
Master=22
28 ACTIVE org.eclipse.osgi.services_3.2.0.v20090306-1900
29 ACTIVE org.eclipse.riena.communication.console_1.1.0.M6
30 ACTIVE org.eclipse.equinox.log_1.1.0.v20090223-1400
31 ACTIVE org.eclipse.riena.security.server_1.1.0.M6
32 ACTIVE org.eclipse.equinox.registry_3.4.100.v20090306-1900
33 ACTIVE org.eclipse.equinox.preferences_3.2.300.v20090306-1900
34 ACTIVE org.apache.log4j_1.2.8.v200706111329
35 ACTIVE org.eclipse.equinox.http.jetty_1.1.100.v20090306-1900
osgi> s
Framework is launched.
id Bundle Location
State Bundle File Name
0 System Bundle
ACTIVE org.eclipse.osgi_3.5.0.v20090311-1300
1
initial@reference:file:org.eclipse.riena.security.services_1.1.0.M6.jar/
ACTIVE org.eclipse.riena.security.services_1.1.0.M6
2
initial@reference:file:org.eclipse.riena.communication.core_1.1.0.M6.jar/
ACTIVE org.eclipse.riena.communication.core_1.1.0.M6
3 initial@reference:file:org.eclipse.riena.core_1.1.0.M6.jar/
ACTIVE org.eclipse.riena.core_1.1.0.M6
4
initial@reference:file:org.eclipse.equinox.transforms.hook_1.0.100.v20090306-1900.jar/
RESOLVED org.eclipse.equinox.transforms.hook_1.0.100.v20090306-1900
5
initial@reference:file:org.eclipse.riena.communication.publisher.hessian_1.1.0.M6.jar/
ACTIVE org.eclipse.riena.communication.publisher.hessian_1.1.0.M6
6 initial@reference:file:org.mortbay.jetty_5.1.14.v200806031611.jar/
ACTIVE org.mortbay.jetty_5.1.14.v200806031611
7
initial@reference:file:org.apache.commons.logging_1.0.4.v20080605-1930.jar/
ACTIVE org.apache.commons.logging_1.0.4.v20080605-1930
8
initial@reference:file:org.eclipse.equinox.app_1.2.0.v20090306-1900.jar/
ACTIVE org.eclipse.equinox.app_1.2.0.v20090306-1900
9
initial@reference:file:org.eclipse.core.runtime.compatibility.auth_3.2.100.v20070502.jar/
ACTIVE org.eclipse.core.runtime.compatibility.auth_3.2.100.v20070502
10 initial@reference:file:org.eclipse.riena.server_1.1.0.M6.jar/
ACTIVE org.eclipse.riena.server_1.1.0.M6
11 initial@reference:file:../../../projekte/work/psgl/de.psgl400.server/
ACTIVE de.psgl400.server_1.0.0
12
initial@reference:file:org.eclipse.equinox.common_3.5.0.v20090310-1800.jar/
ACTIVE org.eclipse.equinox.common_3.5.0.v20090310-1800
13
initial@reference:file:../../../projekte/work/psgl/de.psgl400.server.security/
ACTIVE de.psgl400.server.security_1.0.0
14
initial@reference:file:org.eclipse.riena.security.common_1.1.0.M6.jar/
ACTIVE org.eclipse.riena.security.common_1.1.0.M6
15
initial@reference:file:org.eclipse.core.contenttype_3.4.0.v20090302.jar/
ACTIVE org.eclipse.core.contenttype_3.4.0.v20090302
16
initial@reference:file:org.eclipse.core.variables_3.2.200.v20090302-1500.jar/
ACTIVE org.eclipse.core.variables_3.2.200.v20090302-1500
17
initial@reference:file:org.eclipse.equinox.http.registry_1.0.200.v20090306-1900.jar/
ACTIVE org.eclipse.equinox.http.registry_1.0.200.v20090306-1900
18 initial@reference:file:org.eclipse.core.jobs_3.4.100.v20090213.jar/
ACTIVE org.eclipse.core.jobs_3.4.100.v20090213
19
initial@reference:file:org.eclipse.equinox.http.servlet_1.0.200.v20090306-1900.jar/
ACTIVE org.eclipse.equinox.http.servlet_1.0.200.v20090306-1900
20
initial@reference:file:org.eclipse.riena.communication.factory.hessian_1.1.0.M6.jar/
ACTIVE org.eclipse.riena.communication.factory.hessian_1.1.0.M6
21 initial@reference:file:../../../projekte/work/psgl/de.psgl400.core/
ACTIVE de.psgl400.core_1.0.0
22
initial@reference:file:org.eclipse.equinox.security_1.0.100.v20090306-1900.jar/
ACTIVE org.eclipse.equinox.security_1.0.100.v20090306-1900
23 initial@reference:file:com.caucho.hessian_3.1.3.jar/
ACTIVE com.caucho.hessian_3.1.3
24 initial@reference:file:javax.servlet_2.4.0.v200806031604.jar/
ACTIVE javax.servlet_2.4.0.v200806031604
25 initial@reference:file:org.eclipse.core.runtime_3.5.0.v20090306.jar/
ACTIVE org.eclipse.core.runtime_3.5.0.v20090306
26
initial@reference:file:org.eclipse.riena.communication.publisher_1.1.0.M6.jar/
ACTIVE org.eclipse.riena.communication.publisher_1.1.0.M6
27
initial@reference:file:org.eclipse.equinox.security.win32.x86_1.0.100.v20090306-1900.jar/
RESOLVED org.eclipse.equinox.security.win32.x86_1.0.100.v20090306-1900
28
initial@reference:file:org.eclipse.osgi.services_3.2.0.v20090306-1900.jar/
ACTIVE org.eclipse.osgi.services_3.2.0.v20090306-1900
29
initial@reference:file:org.eclipse.riena.communication.console_1.1.0.M6.jar/
ACTIVE org.eclipse.riena.communication.console_1.1.0.M6
30
initial@reference:file:org.eclipse.equinox.log_1.1.0.v20090223-1400.jar/
ACTIVE org.eclipse.equinox.log_1.1.0.v20090223-1400
31
initial@reference:file:org.eclipse.riena.security.server_1.1.0.M6.jar/
ACTIVE org.eclipse.riena.security.server_1.1.0.M6
32
initial@reference:file:org.eclipse.equinox.registry_3.4.100.v20090306-1900.jar/
ACTIVE org.eclipse.equinox.registry_3.4.100.v20090306-1900
33
initial@reference:file:org.eclipse.equinox.preferences_3.2.300.v20090306-1900.jar/
ACTIVE org.eclipse.equinox.preferences_3.2.300.v20090306-1900
34 initial@reference:file:org.apache.log4j_1.2.8.v200706111329.jar/
ACTIVE org.apache.log4j_1.2.8.v200706111329
35
initial@reference:file:org.eclipse.equinox.http.jetty_1.1.100.v20090306-1900.jar/
ACTIVE org.eclipse.equinox.http.jetty_1.1.100.v20090306-1900
Registered Services
{org.eclipse.osgi.framework.console.CommandProvider}={service.ranking=2147483647,
service.id=2}
{org.osgi.service.packageadmin.PackageAdmin}={service.ranking=2147483647,
service.pid=0.org.eclipse.osgi.framework.internal.core.PackageAdminImpl,
service.vendor=Eclipse.org - Equinox, service.id=3}
{org.osgi.service.permissionadmin.PermissionAdmin,
org.osgi.service.condpermadmin.ConditionalPermissionAdmin}={service.ranking=2147483647,
service.pid=0.org.eclipse.osgi.internal.permadmin.SecurityAdmin,
service.vendor=Eclipse.org - Equinox, service.id=4}
{org.osgi.service.startlevel.StartLevel}={service.ranking=2147483647,
service.pid=0.org.eclipse.osgi.framework.internal.core.StartLevelManager,
service.vendor=Eclipse.org - Equinox, service.id=5}
{org.eclipse.osgi.service.debug.DebugOptions}={service.ranking=2147483647,
service.pid=0.org.eclipse.osgi.framework.debug.FrameworkDebugOptions,
service.vendor=Eclipse.org - Equinox, service.id=6}
{java.lang.ClassLoader}={service.ranking=2147483647,
service.pid=0.org.eclipse.core.runtime.internal.adaptor.ContextFinder,
service.vendor=Eclipse.org - Equinox,
equinox.classloader.type=contextClassLoader, service.id=7}
{org.eclipse.osgi.framework.log.FrameworkLog}={service.ranking=2147483647,
service.pid=0.org.eclipse.core.runtime.adaptor.EclipseLog,
service.vendor=Eclipse.org - Equinox, service.id=8}
{org.eclipse.osgi.service.environment.EnvironmentInfo}={service.ranking=2147483647,
service.pid=0.org.eclipse.core.runtime.internal.adaptor.EclipseEnvironmentInfo,
service.vendor=Eclipse.org - Equinox, service.id=18}
{org.eclipse.osgi.service.resolver.PlatformAdmin}={service.ranking=2147483647,
service.pid=0.org.eclipse.osgi.internal.baseadaptor.StateManager,
service.vendor=Eclipse.org - Equinox, service.id=19}
{org.eclipse.osgi.service.pluginconversion.PluginConverter}={service.ranking=2147483647,
service.pid=0.org.eclipse.core.runtime.internal.adaptor.PluginConverterImpl,
service.vendor=Eclipse.org - Equinox, service.id=20}
{org.eclipse.osgi.framework.console.CommandProvider}={service.ranking=2147483647,
service.pid=0.org.eclipse.core.runtime.internal.adaptor.EclipseCommandProvider,
service.vendor=Eclipse.org - Equinox, service.id=21}
{org.eclipse.osgi.service.localization.BundleLocalization}={service.ranking=2147483647,
service.pid=0.org.eclipse.core.runtime.internal.adaptor.BundleLocalizationImpl,
service.vendor=Eclipse.org - Equinox, service.id=22}
{javax.xml.parsers.SAXParserFactory}={service.id=10}
{javax.xml.parsers.DocumentBuilderFactory}={service.id=11}
{org.eclipse.osgi.service.datalocation.Location}={type=osgi.user.area,
service.id=12}
{org.eclipse.osgi.service.datalocation.Location}={type=osgi.instance.area,
service.id=13}
{org.eclipse.osgi.service.datalocation.Location}={type=osgi.configuration.area,
service.id=14}
{org.eclipse.osgi.service.datalocation.Location}={type=osgi.install.area,
service.id=15}
{org.eclipse.osgi.service.datalocation.Location}={type=eclipse.home.location,
service.id=16}
{org.eclipse.osgi.service.urlconversion.URLConverter}={protocol=[bundleentry,bundleresource],
service.id=17}
{org.eclipse.osgi.signedcontent.SignedContentFactory}={service.id=24}
{org.eclipse.osgi.internal.provisional.verifier.CertificateVerifierFactory}={service.id=25}
{org.osgi.service.framework.CompositeBundleFactory}={service.id=26}
{org.eclipse.osgi.service.urlconversion.URLConverter}={protocol=platform,
service.id=27}
{org.eclipse.core.runtime.IAdapterManager}={service.id=28}
{org.osgi.service.url.URLStreamHandlerService}={url.handler.protocol=[platform],
service.id=29}
{org.eclipse.core.internal.preferences.exchange.IProductPreferencesService}={service.id=30}
{org.eclipse.core.runtime.preferences.IPreferencesService}={service.id=31}
{org.osgi.service.prefs.PreferencesService}={service.id=32}
{org.eclipse.core.runtime.jobs.IJobManager}={service.id=33}
{org.eclipse.core.runtime.IExtensionRegistry}={service.id=34}
{org.eclipse.osgi.framework.console.CommandProvider}={service.id=35}
{org.osgi.service.application.ApplicationDescriptor}={eclipse.application.type=main.thread,
application.name=, application.visible=false,
application.container=org.eclipse.equinox.app,
service.pid=org.eclipse.equinox.app.error,
application.launchable=true, application.locked=false,
application.location=initial@reference:file:org.eclipse.equinox.app_1.2.0.v20090306-1900.jar/,
service.id=36}
{org.eclipse.osgi.framework.console.CommandProvider}={service.id=37}
{org.eclipse.riena.security.common.session.ISessionHolderService}={service.id=40}
{org.osgi.service.log.LogReaderService,
org.eclipse.equinox.log.ExtendedLogReaderService}={service.id=42}
{org.osgi.service.log.LogService,
org.eclipse.equinox.log.ExtendedLogService}={service.id=43}
{org.eclipse.riena.communication.core.progressmonitor.IRemoteProgressMonitorRegistry}={service.id=44}
{org.eclipse.riena.communication.core.hooks.ICallHook}={service.id=45}
{org.eclipse.riena.security.common.ISubjectHolderService}={service.id=46}
{org.eclipse.riena.security.common.authorization.IPermissionCache}={service.id=47}
{org.eclipse.riena.core.cache.IGenericObjectCache}={cache.type=PrincipalCache,
service.id=50}
{org.eclipse.riena.communication.core.hooks.IServiceHook}={service.id=51}
{de.psgl400.core.service.IHelloWorldService}={riena.remote.protocol=hessian,
riena.remote.path=/HelloWorldServiceWS, riena.remote=true,
service.id=56}
{org.eclipse.core.runtime.content.IContentTypeManager}={service.id=57}
{org.eclipse.equinox.http.registry.HttpContextExtensionService}={service.id=58}
{org.eclipse.riena.communication.core.publisher.IServicePublishBinder}={service.id=59}
{org.eclipse.osgi.framework.console.CommandProvider}={service.id=60}
{org.osgi.service.http.HttpService}={service.description=Equinox
Jetty-based Http Service, http.port=8080, service.vendor=Eclipse.org,
service.id=61}
{org.osgi.service.cm.ManagedServiceFactory}={service.pid=org.eclipse.equinox.http.jetty.config,
service.id=62}
{org.eclipse.riena.internal.core.logging.LoggerMill}={service.ranking=-100,
service.id=38}
{org.eclipse.riena.core.exception.IExceptionHandlerManager}={service.ranking=-100,
service.id=39}
{org.eclipse.riena.communication.core.IRemoteServiceRegistry}={service.ranking=-100,
service.id=41}
{org.eclipse.riena.security.common.authorization.ISentinelService}={service.ranking=-100,
service.id=48}
{org.eclipse.riena.security.common.authentication.IAuthenticationService}={service.ranking=-100,
riena.remote.protocol=hessian, riena.remote=true,
riena.remote.path=/AuthenticationService, service.id=49}
{org.eclipse.riena.security.common.authorization.IAuthorizationService}={service.ranking=-100,
riena.remote.protocol=hessian, riena.remote=true,
riena.remote.path=/AuthorizationService, service.id=52}
{org.eclipse.riena.security.server.session.ISessionService}={service.ranking=-100,
riena.remote.protocol=hessian, riena.remote=true,
riena.remote.path=/SessionService, service.id=53}
{org.eclipse.riena.security.sessionservice.ISessionProvider}={service.ranking=-100,
service.id=54}
{org.eclipse.riena.communication.core.publisher.IServicePublisher}={service.ranking=-100,
riena.protocol=hessian, service.id=55}
{org.eclipse.osgi.service.runnable.StartupMonitor}={service.ranking=-2147483648,
service.id=1}
{org.eclipse.osgi.framework.log.FrameworkLog}={service.ranking=-2147483648,
performance=true,
service.pid=46org.eclipse.core.runtime.adaptor.EclipseLog,
service.vendor=Eclipse.org - Equinox, service.id=9}
{org.eclipse.osgi.service.security.TrustEngine}={service.ranking=-2147483648,
osgi.signedcontent.trust.engine=org.eclipse.osgi, service.id=23}
osgi> 07.05.2009 18:14:18 com.caucho.hessian.server.HessianSkeleton
invoke
WARNUNG: java.lang.NullPointerException
java.lang.NullPointerException
at
org.eclipse.riena.internal.security.sessionservice.SessionService.generateSession(SessionService.java:87)
at
org.eclipse.riena.internal.security.authenticationservice.AuthenticationService.login(AuthenticationService.java:137)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at
org.eclipse.riena.communication.core.hooks.AbstractHooksProxy.invoke(AbstractHooksProxy.java:69)
at
org.eclipse.riena.communication.core.hooks.AbstractHooksProxy.invoke(AbstractHooksProxy.java:38)
at
org.eclipse.riena.internal.communication.publisher.ServiceHooksProxy.invoke(ServiceHooksProxy.java:70)
at $Proxy10.login(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at
com.caucho.hessian.server.HessianSkeleton.invoke(HessianSkeleton.java:155)
at
org.eclipse.riena.communication.publisher.hessian.RienaHessianDispatcherServlet.service(RienaHessianDispatcherServlet.java:148)
at
org.eclipse.equinox.http.registry.internal.ServletManager$ServletWrapper.service(ServletManager.java:180)
at
org.eclipse.equinox.http.servlet.internal.ServletRegistration.handleRequest(ServletRegistration.java:90)
at
org.eclipse.equinox.http.servlet.internal.ProxyServlet.processAlias(ProxyServlet.java:111)
at
org.eclipse.equinox.http.servlet.internal.ProxyServlet.service(ProxyServlet.java:67)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
at
org.eclipse.equinox.http.jetty.internal.HttpServerManager$InternalHttpServiceServlet.service(HttpServerManager.java:269)
at
org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:428)
at
org.mortbay.jetty.servlet.ServletHandler.dispatch(ServletHandler.java:677)
at
org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:568)
at org.mortbay.http.HttpContext.handle(HttpContext.java:1530)
at org.mortbay.http.HttpContext.handle(HttpContext.java:1482)
at org.mortbay.http.HttpServer.service(HttpServer.java:909)
at org.mortbay.http.HttpConnection.service(HttpConnection.java:820)
at org.mortbay.http.HttpConnection.handleNext(HttpConnection.java:986)
at org.mortbay.http.HttpConnection.handle(HttpConnection.java:837)
at
org.mortbay.http.SocketListener.handleConnection(SocketListener.java:245)
at org.mortbay.util.ThreadedServer.handle(ThreadedServer.java:357)
at org.mortbay.util.ThreadPool$PoolThread.run(ThreadPool.java:534)