1

アカウント内のすべてのユーザーへのアクセスを必要とするアプリケーションを開発しています。すべての操作は、管理者アカウントを使用して Google Apps for Business アカウントで行われます。

一般的な考え方は、ダッシュボードからログイン画面/URL なしでアプリケーションにアクセスし、必要なデータ (この場合はユーザー) を取得することです。それは可能ですか?

OAuth を設定する必要があるかどうかはわかりません (私のアプリはアプリスポットにデプロイされ、GApps アカウントに追加されます) - 前述のように、アプリを起動したいだけで、現在ログインしている GApps ユーザーからログイン資格情報を取得する必要があります。

ただし、現在のユーザーを取得すると null が返されます。これは、現在のユーザーを取得するためのメソッドを備えた私のサーブレットです。

public class ExperimentalServlet extends HttpServlet {

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        UserService userService = UserServiceFactory.getUserService();
        User user = userService.getCurrentUser();
        resp.setContentType("text/plain");
        resp.getWriter().println("User: " + (user == null ? "<null>" : user.getNickname()));
    }

}

appengine-web.xml

<?xml version="1.0" encoding="utf-8"?>
<appengine-web-app xmlns="http://appengine.google.com/ns/1.0">
    <application>name-of-my-application</application>
    <threadsafe>true</threadsafe>
    <version>1</version>
</appengine-web-app>

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
      http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
     version="2.5">

<servlet>
    <servlet-name>experimental</servlet-name>
    <servlet-class>my.app.domain.ExperimentalServlet</servlet-class>
</servlet>

<servlet-mapping>
    <servlet-name>experimental</servlet-name>
    <url-pattern>/experimental</url-pattern>
</servlet-mapping>

<welcome-file-list>
        <welcome-file>index.jsp</welcome-file>
    </welcome-file-list>

</web-app>
4

1 に答える 1

3

getCurrentUser が null を返す場合、ログインしているユーザーはいません。

その場合は、独自にコーディングしてログイン ページにリダイレクトするか、すべてまたは一部の URL でログインが必要になるようにアプリを構成できます。

その後、appengine は自動的にユーザーをログイン画面にリダイレクトし、ログインに成功すると元に戻ります。

appengine アプリのダッシュボードで、ログインを許可するユーザー、すべて、または Gapps ドメインからのユーザーのみを構成できます。

Gappsドメインに設定し、アプリ内のすべてのURLが認証を必要とするように構成した場合、Gappsユーザーがアプリに入ると、自動的にログインされます.Gappsアカウントにログインしていない場合、ログイン画面ユーザーに表示されます。

セキュリティで保護された URL を構成する方法のリンクは次のとおりです。

https://developers.google.com/appengine/docs/java/configyaml/appconfig_yaml#Secure_URLs

于 2013-01-23T13:23:56.087 に答える