Майдони ном дастгирии воридшавӣ бо истифодаи OpenID ба ҷои воридшавии оддӣ тавассути шаклро дорад, ки барои ин танҳо як тағйироти хурд лозим аст:
<http>
<intercept-url pattern="/**" access="ROLE_USER" />
<openid-login />
</http>
Пас, лозим аст, ки аз тариқи таъминкунандаи OpenID (масалан, myopenid.com) сабти ном карда шавад ва маълумоти истифодабаранда ба <user-service>
, ки дар оперативи хотира ҷойгир аст, илова карда шавад:
<user name="https://jimi.hendrix.myopenid.com/" authorities="ROLE_USER" />
Шумо бояд тавонед ворид шавед, бо истифода аз сомонаи myopenid.com
барои аутентификатсия. Ҳамчунин, метавонед бин, ки махсус дар UserDetailsService
интихоб кунед, дар ҳолати истифода аз OpenID, ки бо атрибути user-service-ref
дар элементи openid-login
танзим шудааст. Тафовут кунед, ки мо атрибути паролро аз конфигуратсияи истифодабаранда, ки дар боло оварда шудааст, нест кардем, чунки ин маҷмӯи маълумотҳо танҳо барои бор кардан ёфтани ваколатҳо барои истифодабаранда истифода мешавад. Парол дар сатҳи дохилӣ тасодуфӣ тавлид мешавад, ки аз истифодаи нодурусти ин маълумоти истифодабаранда дар дигар ҷойҳои конфигуратсия пешгирӣ мекунад.
Обмен аттрибутҳо
Дастгирии обмен атрибутҳо дар OpenID. Барои намуна конфигуратсияи зерин кӯшиш мекунад, ки суроғаи электронӣ ва номи пурраро аз таъминкунандаи OpenID барои истифодаи барнома дастрас кунад:
<openid-login>
<attribute-exchange>
<openid-attribute name="email" type="https://axschema.org/contact/email" required="true"/>
<openid-attribute name="name" type="https://axschema.org/namePerson"/>
</attribute-exchange>
</openid-login>
"Тур" ҳар як атрибут дар OpenID - ин URI аст, ки аз ҷониби схема махсус муайян мешавад, дар ин ҷо https://axschema.org/. Агар барои муваффақона аутентификатсия кардани атрибут лозим шавад, мумкин аст атрибути required
муқаррар карда шавад. Схема ва атрибутҳое, ки дастгирӣ мешаванд, зиёда аз ҳама аз таъминкунандаи шумо OpenID вобастаанд. Арзишҳои атрибутҳо ҳамчун ҷузъи раванди аутентификатсия баргардонда мешаванд ва баъд аз ин дастрасӣ ба онҳо тавассути коди зерин мумкин аст:
OpenIDAuthenticationToken token =
(OpenIDAuthenticationToken)SecurityContextHolder.getContext().getAuthentication();
List<OpenIDAttribute> attributes = token.getAttributes();
Мо метавонем OpenIDAuthenticationToken
-ро аз SecurityContextHolder бигирем. OpenIDAttribute
навъи атрибут ва арзиши дошта (ё арзишҳои дар ҳолати атрибутҳои бисёрқимат) дар бар мегирад. Шумо метавонед якчанд элементи attribute-exchange
гузоред, ки бо истифода аз атрибути identifier-matcher
барои ҳар яки онҳо аст. Он дорои яке аз ифодаҳои мунтазам мебошад, ки бо идентификатори OpenID, ки аз ҷониби истифодабаранда дода шудааст, мутобиқат мекунад. Намунаи конфигуратсия дар кодеки замина барои намунаи барномаи OpenID, ки дар он рӯйхатҳои гуногуни атрибутҳо барои таъминкунандагони Google, Yahoo ва MyOpenID оварда шудаанд, дидан мумкин аст.
GO TO FULL VERSION