, javaserver sider og servlets flere mekanismer, der er til rådighed til web - entreprenører for at sikre ansøgninger.ressourcer er beskyttet declaratively ved at identificere dem i anvendelse anvendelse deskriptor og tildele en rolle for dem. flere niveauer af godkendelse foreligger, lige fra grundlæggende autentificerings - ved hjælp af identifikatorer og kodeord til avancerede autentificering af certifikater. rolle baseret 220040delta, autentificering mekanisme i servlet specifikation anvender en metode, der hedder role-based sikkerhed.tanken er, at i stedet for at begrænse ressourcerne på brugerniveau, du skaber roller og begrænse de ressourcer af rolle. kan du definere forskellige roller i filen tomcat-users.xml, som er beliggende på tomcat 's hjem fortegnelse conf. et eksempel på denne sag er vist nedenfor, <?xml - version ='1.0 "kodning ='utf-8?> < hankat brugere > < rolle rolename = "sild" /> < rolle rolename = "role1" /> < rolle rolename = "chef" /> < rolle rolename = "administration" /> og det bruger brugernavn = "sild" kodeord = "sild" roller = "sild" /> < brugeren brugernavn = "role1" kodeord = "sild" roller = "role1" /> < brugeren brugernavn = "både" kodeord = "sild" roller = "hankat, role1" /> < brugeren brugernavn = "administration" kodeord = "hemmelige" roller = "admin, manager" /> < /hankat brugere > denne fil definerer en simpel afbildning mellem brugernavn, kodeord, og rolle.bemærker, at en given bruger kan have forskellige roller, f.eks. bruger navn = "både" i "sild" rolle og "role1" rolle. når du fastlagt forskellige roller, en role-based sikkerhedsrestriktioner kan placeres i forskellige webapplikationen midler ved at anvende, < sikkerhed begrænsning > element i web.xml dossier til rådighed i web-inf fortegnelse. efter en stikprøve i spind. xml:, < web - app >...<security-constraint> <web-resource-collection> <web-resource-name> SecuredBookSite </web-resource-name> <url-pattern>/secured/*</url-pattern> <http-method>GET</http-method> <http-method>POST</http-method> </web-resource-collection> <auth-constraint> <description> Let only managers use this app </description> <role-name>manager</role-name> </auth-constraint> </security-constraint> <security-role> \t <role-name>manager</role-name> </security-role> < login ud > < men metode > grundlæggende < /) metode > < /adgangskode ud >...< /web - app >, nævnte påtegninger ville betyde:,,, eller efter anmodning af en http få url modsvares af /sikret /*, vil være underlagt sikkerhed begrænsning.,,, en person med manager rolle gives adgang til sikret midler.,,,,,,, login ud element er anvendt til at beskrive den grundlæggende form for autentifikation.,,, hvis du prøver at søge en url, herunder sikring fortegnelse, ville det have en dialog kasse om brugernavn og password.hvis du giver brugeren "administration" og koden "secrer" så ville du have adgang på url modsvares af /sikret /* fordi ovenfor har vi defineret bruger administration med manager rolle, der er adgang til denne ressource. form baseret 220040delta, når de anvender den formular, autentificering metode, du må levere et login formular til hurtig brugeren et brugernavn og password.Following is a simple code of login.jsp to create a form for the same purpose:, <html> <body bgcolor="#ffffff"> <form method="POST" action="j_security_check"> <table border="0"> <tr> <td>Login</td> <td><input type="text" name="j_username"></td> </tr> <tr> <td>Password</td> <td><input type="password" name="j_password"></td> </tr> </table> <input type="submit" value="Login!"> < /center > < /form > < /organ > < /html > her, du er nødt til at sikre, at login - formularen skal indeholde elementer, der hedder j_username form og j_password.den indsats på < form > mærke, skal være j_security_check.post skal anvendes som form metode.samme tid, ville du have til at ændre < login ud > - at angive alle metode som form:, < web - app >...<security-constraint> <web-resource-collection> <web-resource-name> SecuredBookSite </web-resource-name> <url-pattern>/secured/*</url-pattern> <http-method>GET</http-method> <http-method>POST</http-method> </web-resource-collection> <auth-constraint> <description> Let only managers use this app </description> <role-name>manager</role-name> </auth-constraint> </security-constraint> <security-role> \t <role-name>manager</role-name> </security-role> < login ud > < men metode > form < /) metode > < form login ud > < form indlogningsside > /login lox < /form indlogningsside > < form fejl på side > /fejl. lox < /form fejl side > < /form login ud > < /adgangskode ud >...< /web - app >, nu når du forsøger at få adgang til en ressource med url /sikret /*, det ville vise over form om brugeridentifikation og pasord.når beholderen er "j_security_check" aktion, det bruger en intern mekanisme til at bekræfte det. hvis login lykkes og lytter er bemyndiget til at få adgang til sikret ressource, så beholder bruger en samling id - at identificere et login møde for opkald fra det punkt.beholderen fastholder login møde med en kage med session-id. server sender den kage tilbage til kunden, og så længe der er denne kage med efterfølgende anmodninger, så beholder vil vide, hvem der ringede. hvis login mislykkes, så server sender tilbage side identificeres ved form fejl. om fastsættelse af, her er den aktion, der j_security_check ansøgninger under anvendelse af formular baseret login skal angive login form.i samme form, skal du også have en tekst inputkontrol ringede j_username og et password inputkontrol ringede j_password.når du ser det her, betyder det, at oplysningerne i denne formular, vil blive forelagt til server, som vil kontrollere navn og adgangskode.hvordan det gøres, er serveren særlige. tjek standard rige gennemførelse for at forstå, hvordan j_security_check arbejder for hankat container., programmer for sikkerhed i en servlet /lox:, httpservletrequest formål giver følgende metoder, som kan anvendes til min sikkerhed oplysninger på runtime:, snmethod og beskrivelse 1, snor getauthtype(),, getauthtype() metode returnerer en snor objekt, der repræsenterer navnet på den authentication scheme, der anvendes til at beskytte servlet., 2, boolean isuserinrole (java.lang.string rolle), isuserinrole() metode returnerer en boolean - værdi: sandt, hvis brugeren i den givne rolle eller falsk, hvis de ikke., 3, snor getprotocol(),, getprotocol() metode returnerer en snor objekt, der repræsenterer protokollen that, blev brugt til at sende anmodningen.denne værdi kan kontrolleres for at fastslå, om en sikker protokol blev anvendt., 4, boolean issecure(),, issecure() metode returnerer en boolean - værdi, der repræsenterer, hvis anmodningen blev indgivet med https.en værdi af sand: det var og er forbindelsen sikker.en værdi af falske betyder anmodningen blev ikke., 5, i princippet getuserprinciple(),, getuserprinciple() metode returnerer et java.security.principle objekt, der indeholder navnet på den nuværende autentificeret bruger, f.eks. en javaserver side, der forbinder sider for ledere, har du måske følgende kode:, hvis (<% anmodning. isuserinrole ("chef") {% > < en href = "ledere /mgrreport. lox" > manager betænkning < /a > < en href = "ledere /personale. lox" > personalefiler < /a > < i%}% >, ved kontrol af brugerens rolle i en lox eller servlet, du kan vælge den side vise brugeren kun de ting, hun kan få adgang til.hvis du har brug for brugerens navn, da det er opført på autentifikation form, kan du ringe til getremoteuser metode i anmodningen objekt.
lox sikkerhed
Previous:lox debugging -
Next Page:lox internationalisering