Запретить Google App Engine запоминать сеанс пользователя без прав администратора при использовании ограничения безопасности - PullRequest
2 голосов
/ 14 октября 2011

Я просматривал эту статью и застрял с одной проблемой.Представьте, что у меня есть следующее правило в web.xml :

<security-constraint>
    <web-resource-collection>
        <web-resource-name>Admin access</web-resource-name>
        <url-pattern>/AdminPanel.jsp</url-pattern>
    </web-resource-collection>
    <auth-constraint>
        <role-name>admin</role-name>
    </auth-constraint>
</security-constraint>

Затем пользователь без прав администратора открывает AdminPanel.jsp, GAE перенаправляет его на страницу входа в учетные записи Google, вводит свои учетные данные и логическиполучает эту страницу

Error: Forbidden
Your client does not have permission to get URL /AdminPanel.jsp from this server. 

Теперь я не могу повторно войти в систему с другой учетной записью Google, потому что я все еще аутентифицирован как неправильный пользователь и GAE вставьте ACSID cookieдля URL приложения.Я всегда получаю сообщение об ошибке, которое я упоминал выше.Есть ли способ элегантно решить эту проблему?Я бы хотел, чтобы клиент мог повторно войти в систему с соответствующими учетными данными.Также возможна ситуация, когда клиент вошел в более чем один аккаунт.У меня лично есть аккаунт Google Apps и Gmail.Все приложения Google, такие как GMail, имеют возможность переключаться между учетными записями.Могу ли я сделать то же самое?

1 Ответ

1 голос
/ 17 октября 2011

Проверьте учетные данные пользователя внутри сервлета вашего приложения, а не с помощью web.xml.Если они вошли в систему, но не авторизованы, предложите им возможность выйти из системы.

...