Hello everyone,
I am sure i am asking something that some one here knows the answer.
I am trying to implement the OpenID client to authenticate my users
in
the Google App Engine website and then use Google Accounts API to
access their profile (All i want is to show their profile pics, show
their contacts when they want to notify some information to their
friends when they use my websitewww.letsvoteonline.com)
I am using OpenID for Java library for this purpose. The problem here
is i am getting the following exception.
java.security.AccessControlException: access denied
(java.lang.RuntimePermission modifyThreadGroup)
at java.security.AccessControlContext.checkPermission(Unknown
Source)
at java.security.AccessController.checkPermission(Unknown
Source)
at java.lang.SecurityManager.checkPermission(Unknown Source)
at com.google.appengine.tools.development.DevAppServerFactory
$CustomSecurityManager.checkPermission(DevAppServerFactory.java:151)
at com.google.appengine.tools.development.DevAppServerFactory
$CustomSecurityManager.checkAccess(DevAppServerFactory.java:176)
at java.lang.ThreadGroup.checkAccess(Unknown Source)
at java.lang.Thread.init(Unknown Source)
at java.lang.Thread.(Unknown Source)
at
org.apache.commons.httpclient.MultiThreadedHttpConnectionManager
$ReferenceQueueThread.(MultiThreadedHttpConnectionManager.java:1039)
at
org.apache.commons.httpclient.MultiThreadedHttpConnectionManager.storeRefer
enceToConnection
(MultiThreadedHttpConnectionManager.java:164)
at
org.apache.commons.httpclient.MultiThreadedHttpConnectionManager.access
$900(MultiThreadedHttpConnectionManager.java:64)
at
org.apache.commons.httpclient.MultiThreadedHttpConnectionManager
$ConnectionPool.createConnection
(MultiThreadedHttpConnectionManager.java:750)
at
org.apache.commons.httpclient.MultiThreadedHttpConnectionManager.doGetConne
ction
(MultiThreadedHttpConnectionManager.java:469)
at
org.apache.commons.httpclient.MultiThreadedHttpConnectionManager.getConnect
ionWithTimeout
(MultiThreadedHttpConnectionManager.java:394)
at
org.apache.commons.httpclient.HttpMethodDirector.executeMethod
(HttpMethodDirector.java:152)
at org.apache.commons.httpclient.HttpClient.executeMethod
(HttpClient.java:396)
at org.apache.commons.httpclient.HttpClient.executeMethod
(HttpClient.java:324)
at org.openid4java.util.HttpCache.head(HttpCache.java:296)
at
org.openid4java.discovery.yadis.YadisResolver.retrieveXrdsLocation
(YadisResolver.java:360)
at org.openid4java.discovery.yadis.YadisResolver.discover
(YadisResolver.java:229)
at org.openid4java.discovery.yadis.YadisResolver.discover
(YadisResolver.java:221)
at org.openid4java.discovery.yadis.YadisResolver.discover
(YadisResolver.java:179)
at org.openid4java.discovery.Discovery.discover
(Discovery.java:134)
at org.openid4java.discovery.Discovery.discover
(Discovery.java:114)
at org.openid4java.consumer.ConsumerManager.discover
(ConsumerManager.java:527)
at letsvote.webapps.Letsvote_test1Servlet.authRequest
(Letsvote_test1Servlet.java:170)
at letsvote.webapps.Letsvote_test1Servlet.doGet
(Letsvote_test1Servlet.java:93)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:
693)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:
806)
at org.mortbay.jetty.servlet.ServletHolder.handle
(ServletHolder.java:
487)
at org.mortbay.jetty.servlet.ServletHandler
$CachedChain.doFilter
(ServletHandler.java:1093)
at
com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter
(TransactionCleanupFilter.java:43)
at org.mortbay.jetty.servlet.ServletHandler
$CachedChain.doFilter
(ServletHandler.java:1084)
at
com.google.appengine.tools.development.StaticFileFilter.doFilter
(StaticFileFilter.java:121)
at org.mortbay.jetty.servlet.ServletHandler
$CachedChain.doFilter
(ServletHandler.java:1084)
at org.mortbay.jetty.servlet.ServletHandler.handle
(ServletHandler.java:360)
at org.mortbay.jetty.security.SecurityHandler.handle
(SecurityHandler.java:216)
at org.mortbay.jetty.servlet.SessionHandler.handle
(SessionHandler.java:181)
at org.mortbay.jetty.handler.ContextHandler.handle
(ContextHandler.java:712)
at org.mortbay.jetty.webapp.WebAppContext.handle
(WebAppContext.java:
405)
at
com.google.apphosting.utils.jetty.DevAppEngineWebAppContext.handle
(DevAppEngineWebAppContext.java:54)
at org.mortbay.jetty.handler.HandlerWrapper.handle
(HandlerWrapper.java:139)
at
com.google.appengine.tools.development.JettyContainerService
$ApiProxyHandler.handle(JettyContainerService.java:342)
at org.mortbay.jetty.handler.HandlerWrapper.handle
(HandlerWrapper.java:139)
at org.mortbay.jetty.Server.handle(Server.java:313)
at org.mortbay.jetty.HttpConnection.handleRequest
(HttpConnection.java:
506)
at org.mortbay.jetty.HttpConnection
$RequestHandler.headerComplete
(HttpConnection.java:830)
at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:
514)
at org.mortbay.jetty.HttpParser.parseAvailable
(HttpParser.java:211)
at org.mortbay.jetty.HttpConnection.handle
(HttpConnection.java:381)
at org.mortbay.io.nio.SelectChannelEndPoint.run
(SelectChannelEndPoint.java:396)
at org.mortbay.thread.BoundedThreadPool$PoolThread.run
(BoundedThreadPool.java:442)
Powered by Jetty://
I heard Google Appengine doesnot support running multiple threads. So
is this related to that?
I see the following lines in Google App Engine Docs
"The App Engine datastore supports storing the User object returned
by
the Google Accounts API as a special value type. As of this writing,
User values do not behave as stable identifiers for users: if an app
stores a User value and the user changes her email address, the User
value will no longer refer to a valid user. In practice, users rarely
change their Google Account email addresses, but it's worth designing
for this rare case. A future update to the service may update User
values in the datastore automatically. Until then, it is a best
practice to not rely on the User value for stability.
The User object exposes a unique user ID that is guaranteed to be
stable for the lifetime of the user's account, even after changing
the
email address. You can use this value in a datastore entity key or
property value. If you wish to perform datastore queries over both
email addresses and user IDs, you can store both the User object and
the user ID from the object as separate properties."
So Does it mean that Google App Engine really support Google Accounts
API?
Can some one point me to some step by step how to do information?
People, your help is really needed here.
Thanks
Pradheep
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Google App Engine for Java" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/google-appengine-java?hl=en
-~----------~----~----~----~------~----~------~--~---