Je veux accéder à certaines pages de site Web https://myoffice.bt.com qui nécessite une authentification de l'utilisateur en utilisant Java. Nous devons vous connecter d'abord pour accéder à des pages. J'ai un code suivant après le code suivant. Mais il donne des erreurs suivantes. P> Exception in thread "main" java.lang.IllegalArgumentException: Entity enclosing requests cannot be redirected without user intervention
at org.apache.commons.httpclient.methods.EntityEnclosingMethod.setFollowRedirects(Unknown Source)
at root.Url.main(Url.java:30)
3 Réponses :
Premier - veuillez ne pas nommer votre Deuxièmement, essayez ceci: p> postMethod code> variable
Obtenez code>.
Segment=btb.hub
SubSegment=
searchType=0
searchPlatform=BEA
lob=btb.hub
queryText=
searchText=
ctl00$masterWebpartManager$gwpCustomLogin1$CustomLogin1$UserName=your@email.com
ctl00$masterWebpartManager$gwpCustomLogin1$CustomLogin1$PWD=yourpwd
ctl00$masterWebpartManager$gwpCustomLogin1$CustomLogin1$RememberMe=on
USER=your@email.com
PASSWORD=yourpwd
SMENC=ISO-8859-1
SMLOCALE=US-EN
userFirstLoginUrl=https://myoffice.bt.com/ManageBusinessApplications/SecretQA.aspx
PrivateLoginSuccessUrl=https://myoffice.bt.com/sm/privatecreatesession.aspx?siteArea=btb.mya
PublicLoginSuccessUrl=https://myoffice.bt.com/sm/createsession.aspx?siteArea=btb.mya
target=https://myoffice.bt.com/sm/privatecreatesession.aspx?siteArea=btb.mya&TARGET=https%3a%2f%2fmyoffice.bt.com%2fdefault.aspx (hidden)
submitStatus=
smauthreason=
smagentname=
postpreservationdata=
AnonUserName=anon@myoffice.bt.com
authMode=SITEMINDER
smUrl=https://myoffice.bt.com/siteminderagent/forms/login.fcc
notSMUrl=https://myoffice.bt.com/default.aspx
smIdentifier=1
Merci d'avoir répondu. Voici le code modifié, mais cela me renvoie à nouveau à la page de connexion.
Si ce site Web utilise l'authentification Siteminder, vous ne pourrez pas vous connecter, comme ça. Siteminder utilise des cookies pour identifier des sessions authentifiées. Ces cookies ne sont valables que tant que votre session est vivante. Si vous n'êtes pas connecté, le serveur vous redirige vers la page de connexion Siteminder (d'où la redirection). Donc, ce que vous aurez besoin de faire est de suivre la redirection, envoyez vos informations d'identification (nom d'utilisateur / mot de passe), puis suivez la redirection à nouveau, envoyant les cookies reçus. P>
J'ai enregistré des sessions pour des tests de régression à l'aide de la meuleuse ( http://grinder.sourceforge.net/ a>), et il a pu se connecter automatiquement au site Web de Siteminder protégé! Il est donc certainement possible, mais vous devrez faire un peu plus que simplement envoyer une demande HTTP ... P>
La meilleure solution serait une autre sorte d'authentification, comme une authentification basée sur le certificat (mais bien sûr, cela doit également être configuré sur le côté serveur, il peut donc ne pas être une option dans ce cas). Pourquoi ne pas demander à BT s'ils fournissent d'autres méthodes d'authentification? P>
edit: strong> Je viens de trouver ceci: http : //www.codeproject.com/kb/ip/siteminderhttpwebrequest.aspx
Le code source est dans VB, mais l'article est excellent, et il ne devrait pas être de problème de traduire le code VB en Java ...; -) p>
Version Java: Fonctionne bien avec les ressources protégées SiteMinder, testées avec les communes httpClient 4.3.3
Vous pouvez indenter votre code avec quatre espaces ou envelopper les balises code>, pour les formater pour le code.