Я реализовал com.ibm.ws.security.web.saml.ACSTrustAssociationInterceptor в соответствии с этой статьей https://www.ibm.com/developerworks/library/mw-1612-lansche-trs/index.html. И это кажется рабочим. У кого-нибудь есть пример кода для заполнения объекта из TAIResult?Как заполнить тему из TAIResult?
ответ
IBM SAML TAI (com.ibm.ws.security.web.saml.ACSTrustAssociationInterceptor
является IBM предоставленного классом Java. Это реализация структуры WebSphere Trust Association Interceptor и использует спецификацию SAML для установления доверительных отношений, без необходимости писать пользовательские Java-код.
Основываясь на формулировка вашего вопроса звучит так, как если бы вы могли вместо этого следовать ссылке в этой статье на гораздо более старый (но все еще действительный) technical article о базовой структуре TAI. Это руководство полностью описывает написание пользовательского кода, который реализует интерфейс IBM Java (com.ibm.wsspi.security.tai.TrustAssociationInterceptor
) с вашей собственной логикой доверия и охватывает метод public TAIResult negotiateValidateandEstablishTrust()
, который вы должны реализовать.
Чуть ниже в TAI article представляет собой обзор трех статических методов в классе TAIResult, чтобы помочь вам заполнить идентичность:
Класс TAIResult имеет три статические методы для создания TAIResult, все из которых всегда возьмите int как первый параметр. Этот параметр , как ожидается, будет действительным запрос HTTP код возврата ...
Вы можете построить Subject
в два пути: у WebSphere зделать автоматически providing a userid string (и позволяющий WebSphere для запроса хранилища пользователей) или вручную , по programmatically creating one. Ручной подход является самым мощным - вы можете делать все от создания «эфемерного» пользователя «на лету», включая членство в группах, или вы можете использовать другие API WAS для создания полностью заполненного Subject
, а затем изменить его - например, для добавления группы членство «на лету» (а не в базовом репозитории пользователей).
В каждом из Subject
имеется код в разделе «Использование TAI» в definitive guide to WAS authentication and TAI implementation.
Если вы создаете свой собственный Subject
или добавляете собственные объекты учетных данных, убедитесь, что классы сериализуемы - см. Раздел статьи о распространении.
Просто предоставить некоторые примеры кода, вот пример из статьи, которая описывает полностью строит Subject
на лету в методе negotiateValidateandEstablishTrust()
:
String userid = "the_user_id"; //get from request, etc
InitialContext ctx = new InitialContext();
UserRegistry reg =(UserRegistry)ctx.lookup("UserRegistry");
String uniqueid = reg.getUniqueUserID(userid);
//define groups
ArrayList groups = new ArrayList();
// add admin group
groups.add(reg.getUniqueGroupId("Administrators"));
// stash in hashtable
Hashtable hashtable = new Hashtable();
hashtable.put(AttributeNameConstants.WSCREDENTIAL_UNIQUEID,uniqueid);
hashtable.put(AttributeNameConstants.WSCREDENTIAL_SECURITYNAME,userid);
hashtable.put(AttributeNameConstants.WSCREDENTIAL_GROUPS,groups);
hashtable.put(AttributeNameConstants.WSCREDENTIAL_CACHE_KEY,uniqueid+"MyCustom");
Subject subject = new Subject();
subject. getPublicCredentials().add(hashtable);
return TAIResult.create(HTTPServletResponse.SC_OK, "ignored", subject);
В SAML TAI IBM, вы упоминаете, они сами реализовать выше, чтобы читать XML-документы SAML разных вкусов от HttpServletRequest
и обрабатывать их, создавая эфемерную или идентификационную информацию реестра в зависимости от конфигурации.
Key документация:
- Advanced authentication in WAS (охватывает структуру TAI и другие точки штекерные)
- TrustAssociationInterceptor Javadoc
- TAIResult Javadoc
- IBM SAML TAI Overview
- 1. Как заполнить древовидное представление из списка объектов
- 2. Получить тему из заголовка
- 3. AS3: не может заполнить тему и тело в mailto
- 4. Как заполнить datagrid из списка?
- 5. Как заполнить ListView из массива?
- 6. Как заполнить класс из файла
- 7. Как заполнить StructuredProperty из dict?
- 8. Как заполнить ListView из ArrayAdapter
- 9. Как заполнить хэш из массива
- 10. Как заполнить jqgrid из модели
- 11. Как заполнить UITableView из NSArray?
- 12. Как заполнить jTable из ArrayList?
- 13. Как заполнить datatable из SortedList?
- 14. Как заполнить переменные из файла?
- 15. Как заполнить AlertDialog из Arraylist?
- 16. Как заполнить system.data.dataset из oracle.dataacess.client.oracledataadapter?
- 17. Как заполнить ComboBox из DataSet
- 18. Как получить текущую тему ASP.NET из HttpContext.Current?
- 19. Как Приостановка SurfaceView тему из Android Активность
- 20. Как остановить/приостановить конкретную тему из ExecutorService?
- 21. Как удалить тему из Firebase Console? (FCM)
- 22. Как отключить все css/тему из ZK?
- 23. Как включить тему Android из другого проекта
- 24. Как создать дочернюю тему из родительской темы
- 25. Как добавить тему vaadin из библиотеки
- 26. Как установить тему из базы данных
- 27. Как открыть конкретную тему из файла chm?
- 28. Как удалить тему из DCOS Kafka?
- 29. исключить тему из определенного контейнера
- 30. Использовать тему из framework-res.apk
Благодаря Скотт. Я не использовал какой-либо индивидуальный TAI. Я задавался вопросом, после того, как аутентификация выполняется com.ibm.ws.security.web.saml.ACSTrustAssociationInterceptor. Запрос отправляется на мой сервлет А. Могу ли я использовать TAIResult в сервлете A для заполнения объекта? Или любой пример кода для заполнения объекта? – rickcoup
Я имел в виду, не имея необходимости делать пользовательские TAI. – rickcoup
Если вы перенаправляете сервлет, который является защищенным ресурсом, объект должен быть доступен. Я не уверен, что он доступен в первоначальном неавторизованном запросе, даже если произошла аутентификация TAI. –