My favorites | Sign in
Project Home Downloads Wiki Issues Source
Search
for
OpenIDConsumer  
How to use JOID as a consumer so you can OpenID enable your apps.
Phase-Deploy, Featured
Updated Feb 4, 2010 by treeder

Introduction

To use JOID as a Consumer, there are basically two steps.

  1. Add OpenIdFilter to your web.xml
  2. Create an OpenID login form

OpenIdFilter

Add the following to web.xml

        <filter>
		<filter-name>OpenIdFilter</filter-name>
		<filter-class>org.verisign.joid.consumer.OpenIdFilter</filter-class>
		<init-param>
			<param-name>saveInCookie</param-name>
			<param-value>true</param-value>
			<description>Optional. Will store the identity url in a cookie under "openid.identity" if set to true.</description>
		</init-param>
		<!--
		<init-param>
			<param-name>cookieDomain</param-name>
			<param-value>www.mydomain.com</param-value>
			<description>Optional. Domain to store cookie based on RFC 2109. Defaults to current context.</description>
		</init-param>
		-->
	</filter>
        <filter-mapping>
		<filter-name>OpenIdFilter</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>

OpenID Form

This form will accept a users OpenID URL identifier and upon submit, it redirects to the OpenID server identified by the URL and asks the user to accept the authentication request.

See here for example pages you can use and modify: http://joid.googlecode.com/svn/trunk/examples/server/

Comment by doug.sat...@ymail.com, Jan 7, 2009

yahoo.com

Comment by rockerh...@gmail.com, Aug 9, 2009

I do these steps below: - Add joid.jar, log4j-1.2.13.jar, tsik.jar to WEB-INF/lib/.jar - Add index.jsp to WEB-INF/index.jsp - Run index.jsp

--> "An error occurred! Please press back and try again." and stacktrace is: identityUrl=http://me.yahoo.com/rockerhieu java.security.AccessControlException?: access denied (java.net.SocketPermission? me.yahoo.com resolve)

at java.security.AccessControlContext?.checkPermission(AccessControlContext?.java:323) at java.security.AccessController?.checkPermission(AccessController?.java:546) at java.lang.SecurityManager?.checkPermission(SecurityManager?.java:532) at com.google.appengine.tools.development.DevAppServerFactory?$CustomSecurityManager?.checkPermission(DevAppServerFactory?.java:128) at java.lang.SecurityManager?.checkConnect(SecurityManager?.java:1031) at java.net.InetAddress?.getAllByName0(InetAddress?.java:1145) at java.net.InetAddress?.getAllByName(InetAddress?.java:1083) at java.net.InetAddress?.getAllByName(InetAddress?.java:1019) at java.net.InetAddress?.getByName(InetAddress?.java:969) at java.net.InetSocketAddress?.<init>(InetSocketAddress?.java:124) at java.net.Socket.<init>(Socket.java:240) at org.apache.commons.httpclient.protocol.DefaultProtocolSocketFactory?.createSocket(DefaultProtocolSocketFactory?.java:80) at org.apache.commons.httpclient.protocol.DefaultProtocolSocketFactory?.createSocket(DefaultProtocolSocketFactory?.java:122) at org.apache.commons.httpclient.HttpConnection?.open(HttpConnection?.java:707) at org.apache.commons.httpclient.HttpMethodDirector?.executeWithRetry(HttpMethodDirector?.java:387) at org.apache.commons.httpclient.HttpMethodDirector?.executeMethod(HttpMethodDirector?.java:171) at org.apache.commons.httpclient.HttpClient?.executeMethod(HttpClient?.java:397) at org.apache.commons.httpclient.HttpClient?.executeMethod(HttpClient?.java:323) at org.verisign.joid.consumer.Discoverer.findWithYadis(Discoverer.java:56) at org.verisign.joid.consumer.Discoverer.findIdServer(Discoverer.java:35) at org.verisign.joid.consumer.JoidConsumer?.getAuthUrl(JoidConsumer?.java:156) at org.apache.jsp.index_jsp.jspService(index_jsp.java:57) at org.apache.jasper.runtime.HttpJspBase?.service(HttpJspBase?.java:94) at javax.servlet.http.HttpServlet?.service(HttpServlet?.java:806) at org.apache.jasper.servlet.JspServletWrapper?.service(JspServletWrapper?.java:324) at org.apache.jasper.servlet.JspServlet?.serviceJspFile(JspServlet?.java:292) at org.apache.jasper.servlet.JspServlet?.service(JspServlet?.java:236) at com.google.appengine.tools.development.PrivilegedJspServlet?.access$101(PrivilegedJspServlet?.java:23) at com.google.appengine.tools.development.PrivilegedJspServlet?$2.run(PrivilegedJspServlet?.java:59) at java.security.AccessController?.doPrivileged(Native Method) at com.google.appengine.tools.development.PrivilegedJspServlet?.service(PrivilegedJspServlet?.java:57) 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 org.verisign.joid.consumer.OpenIdFilter?.doFilter(OpenIdFilter?.java:119) at org.mortbay.jetty.servlet.ServletHandler?$CachedChain?.doFilter(ServletHandler?.java:1084) at org.tuckey.web.filters.urlrewrite.RuleChain?.handleRewrite(RuleChain?.java:176) at org.tuckey.web.filters.urlrewrite.RuleChain?.doRules(RuleChain?.java:145) at org.tuckey.web.filters.urlrewrite.UrlRewriter?.processRequest(UrlRewriter?.java:92) at org.tuckey.web.filters.urlrewrite.UrlRewriteFilter?.doFilter(UrlRewriteFilter?.java:381) at org.mortbay.jetty.servlet.ServletHandler?$CachedChain?.doFilter(ServletHandler?.java:1084) 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:124) 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:313) 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?.content(HttpConnection?.java:844) at org.mortbay.jetty.HttpParser?.parseNext(HttpParser?.java:644) 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)

Please help me to solved it. Thanks much.

Comment by jSlim...@gmail.com, Jan 8, 2010

It looks like org.verisign.joid.consumer.Discoverer.findWithYadis is using some port other than 80 or 443. You can only make HTTP or HTTPS connections from appengine.

I would also like to know when JOID works with AppEngine?.

Comment by florait...@gmail.com, Feb 23, 2011

<filter>

<filter-name>OpenIdFilter?</filter-name> <filter-class>org.verisign.joid.consumer.OpenIdFilter?</filter-class> <init-param>
<param-name>saveInCookie</param-name> <param-value>true</param-value> <description>Optional. Will store the identity url in a cookie under "openid.identity" if set to true.</description>
</init-param> <!-- <init-param>
<param-name>cookieDomain</param-name> <param-value>www.mydomain.com</param-value> <description>Optional. Domain to store cookie based on RFC 2109. Defaults to current context.</description>
</init-param> -->
</filter> <filter-mapping>
<filter-name>OpenIdFilter?</filter-name> <url-pattern>/</url-pattern>
</filter-mapping>


Sign in to add a comment
Powered by Google Project Hosting