доступ к сеансу PHP из командной строки Java-программы - PullRequest
2 голосов
/ 22 января 2010

Я разрабатываю сервер безопасности предприятия для нашей компании - у нас много разных приложений, большинство из которых написаны на Java, а некоторые написаны на PHP. Я мог бы предоставить удаленный API, который бы давал каждому приложению доступ к серверу. Я мог бы также создать «агентов», которые может включать каждое приложение, которые будут выполнять за них всю работу, но позволят моему серверу контролировать их сеансы и, следовательно, их аутентификацию / авторизацию. Проблема в том, что мне, вероятно, лучше написать агент в Java, потому что 80% или более наших приложений находятся в Java.

Если я написал агент в Java, кто-нибудь знает, был ли способ, которым эта программа могла получить доступ к сеансу php? Если нет, то есть ли у кого-нибудь предложение относительно лучшего способа сделать это?

Ответы [ 2 ]

0 голосов
/ 22 января 2010

Данные сеанса хранятся в виде сериализованного массива (php) во временной папке. Местоположения для них задаются в файле php.ini.

Но вы можете изменить как формат данных, так и место их хранения (например, в базе данных или общей памяти или где-то еще), написав свой собственный обработчик.

Быстрый гугл предполагает, что несколько человек написали [де] сериализаторы на Java для данных PHP. например http://hurring.com/scott/code/java/serialize/

Если у вас есть проблемы со встроенной функцией сериализации PHP - используйте Google для WDDX (который входит в стандартную комплектацию IIRC) и сериализует данные в XML.

Возможно, вы захотите подумать о том, как сохранить данные сеанса активными для PHP, если вы хотите, чтобы агент продолжал работать независимо от веб-сеанса.

С

0 голосов
/ 22 января 2010

Вы можете подключиться к обработке сессий PHP, используя session_set_save_handler () (пример простого, но полного пользовательского обработчика включен в руководство). Таким образом вы сможете синхронизировать управление сессиями PHP с центральным сервером Java.

Ваше PHP-приложение получит идентификатор сеанса через cookie ($ _COOKIE ["SESSION_ID"] или что-то еще).

Ваш пользовательский session_save_handler вместо того, чтобы поддерживать собственное хранилище сеансов, передает этот идентификатор сеанса на центральный сервер безопасности на основе Java и получает взамен все данные сеанса. Запись в сеанс из PHP будет маршрутизироваться таким же образом.

Конечно, вы могли бы пойти другим путем и опросить данные внутреннего сеанса PHP извне, но не совсем поняли, для чего именно. Если это так, не могли бы вы рассказать подробнее?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...