1

考虑以下代码摘录:

            String openIDProviderURL = "https://www.google.com/accounts/o8/id";

            try {
                URI loc = getUI().getPage().getLocation();
                List discoveries = manager.discover(openIDProviderURL);
                DiscoveryInformation discovered = manager.associate(discoveries);
                getUI().getSession().setAttribute("openid-disc", discovered);
                AuthRequest authReq = manager.authenticate(discovered, "http://"+loc.getHost()+":"+loc.getPort()+loc.getPath());
                FetchRequest fetch = FetchRequest.createFetchRequest();
                authReq.addExtension(fetch);
                System.out.println("DEST URL: "+authReq.getDestinationUrl(true));
                getUI().getPage().setLocation(authReq.getDestinationUrl(true));
            } catch (DiscoveryException ex) {
                Logger.getLogger(NavigatorUI.class.getName()).log(Level.SEVERE, null, ex);
            } catch (MessageException ex) {
                Logger.getLogger(NavigatorUI.class.getName()).log(Level.SEVERE, null, ex);
            } catch (ConsumerException ex) {
                Logger.getLogger(NavigatorUI.class.getName()).log(Level.SEVERE, null, ex);
            }
        }

但是,使用 Google 进行身份验证有效,谁能告诉我如何从我在这里使用的对象中提取实际的 openID-identifier-URL 吗?当身份验证成功时,它让我现在可以写“ INFO: Verification succeeded for: https://www.google.com/accounts/o8/id?blablabla”,但到目前为止,我还没有找到在程序中访问这个 URL 的方法。有人可以帮帮我吗?

PS:我一直在阅读处理 openID4java 的旧帖子。但是,它们都处理失败的身份验证等,对我来说这不是问题。如果以前有人问过这个问题,我很抱歉。

4

0 回答 0