外文翻译-ejb的安全性ejb security_第1页
外文翻译-ejb的安全性ejb security_第2页
外文翻译-ejb的安全性ejb security_第3页
外文翻译-ejb的安全性ejb security_第4页
外文翻译-ejb的安全性ejb security_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

EJBSECURITYINTRODUCTIONSECURITYMANAGEMENTISONEOFTHEIMPORTANTSERVICESTHATEJBOFFERSTHELOW_LEVELSECURITYINFRASTRUCTUREINEJBISIMPLEMENTEDBYTHECONTAINERPROVIDERSECURITYPOLICIESARESETATDEPLOYMENTTIMEINORDERTOMAKETHEBEANSPORTABLEACROSSAPPLICATIONSEJBSECURITYBOILSDOWNTOWHICHUSERHASPERMISSIONTOCALLWHICHMETHODOFABEANUSERSAREDEFINEDOUTSIDEEJBINASPECIFICOPERATIONALENVIRONMENTFOREXAMPLE,AUSERNAMEDGURMAILKANDOLA,WORKINGONAUNIXMACHINEWITHUSERNAMEKANDOLA,ISAMEMBEROFUSERGROUPENGINEERING,HASACCESSPERMISSIONTOAMYSQLDATABASESERVERANDSOONTOTHEEJBCODE,AUSERISREPRESENTEDBYANINSTANCEOFTHEOFTHECLASSJAVASECURITYPRINCIPALPRINCIPALSAREMAPPEDTOSECURITYROLES,WHICHDETERMINETHEMETHODSAPRINCIPALCANACCESSTHEAPPLICATIONASSEMBLERDEFINESTHELOGICALSECURITYROLES,ANDTHEDEPLOYERMAPSTHEMTHEMTOTHEPRINCIPALSAMETHODCALLFROMACLIENTMAYTRIGGERABEANTOBEANCHAINOFCALLS,ASYOUSAWINTHEPREVIOUSCHAPTERWHILEEXPLORINGTRANSACTIONSHOWDOESSECURITYPROPAGATEALONGTHISCHAINOFCALLSHOWDOTHEVAROUSEJBROLESSPLITTHERESPONSIBILITYFORSETTINGSECURITYPOLICIESTHESEQUESTIONSPOINTTOSOMEOFTHEIMPORTANTISSUESTHATWEWILLEXPLOREINTHISCHAPTERYOURGOALFORTHISCHAPTERISTOUNDERSTANDEJBSECURITYANDHOWTHESECURITYASSIGNMENTSANDRESPONSIBILITIESFLOWFROMMETHODTOMETHODANDROLETOROLETOACCOMPLISHTHAT,WEWILLEXPLORETHREEAVENUESDECLARATIVEANDPROGRAMMATICSECURITYINEJB,THEFLOWOFRESPONSIBILITIESFROMROLETOROLEINDETERMININGSECURITYPOLICY,ANDTHEFLOWOFSECURITYIDENTITYWITHINASEQUENCEOFMETHODCALLSIMPLEMENTINGSECURITYINEJBTHESECURITYINFRASTRUCTUREINEJBISIMPLEMENTEDBYTHECONTAINERPROVIDER,WHILETHESECURITYPOLICIESAREDETERMINEDBYOTHEREJBROLESATDEPLOYMENTANDRUNTIMEINTHISSECTION,WEDISCUSSTHESECURITYREQUIREMENTSPRESENTEDBYTHEEJBARCHITECTUREANDHOWTHEYAREMETFIRST,WEINTRODUCETHEBASICSECURITYCONCEPTSTHATYOUNEEDTOGRASPINORDERTOCOMPREHENDTHERESTOFTHEMATERIALINTHISCHAPTERUNDERSTANDINGBASICSECURITYCONCEPTSTOUNDERSTANDTHEDIFFERENTFEATURESOFEJBSECURITYANDHOWTHECARIOUSPIECESFITTOGETHER,YOUNEEDTOKNOWWHATTHEBASICSECURITYTERMSMEANFIRST,WEBRIEFLYINTRODUCETHOSETERMSAUTHENTICATIONANDAUTHORIZATIONAUTHENTICATIONAUTHORIZATIONRESENTTWOLEVELSOFSECURITYONASYSTEM,SUCHASACOMPUTERSYSTEMORANAPPLICATIONRUNNINGONACOMPUTERAUTHENTICATIONINVOLVESSHOWINGYOURIDINORDERTOGETINTOTHESYSTEM,FOREXAMPLE,YOURLOGINANDPASSWORDAUTHORIZATIONDETERMINESWHATYOUCANANDCANNOTDOONCEYOUAREINTHESYSTEMFOREXAMPLE,FIRSTYOULOGONTOAFILESERVERUSINGAUTHENTICATIONBYTYPINGINYOURLOGINANDPASSWORDONCEYOUARELOGGEDIN,YOUFINDASETOFFILESTHATYOUCANONLYREAD,ANOTHERSETOFFILESTHATYOUCANREADANDCHANGE,ANDYETANOTHERSETTHATYOUCANNOTEVENREADTHISISTHEAUTHORIZATIONPARTOFSECURITYINEJB,AUTHORIZATIONMEANSTHATACLIENTISAUTHORIZEDTOCALLABEANMETHODPRINCIPALSANDROLESAPRINCIPALISANENTITYTHATCANBEAUTHENTICATEDBYASYSTEMITCANBE,FORINSTANCE,ANENDUSERORANAPPLICATIONTRYINGTOACCESSANOTHERAPPLICATIONINJAVA,ONCEANENTITYISAUTHENTICATEDTOASYSTEMITISREPRESENTEDBYANINSTANCEOFJAVASECURITYPRINCIPALINEJB,APRINCIPALCANBEASSOCIATEDWITHONCEORMORESECRUITYROLESDEFINEDBYTHEAPPLICATIONASSEMBLERASECRUITYROLEHASASETOFPERMISSIONSASSIGNEDTOITAPRINCIPALCANBEMAPPEDTOTHESEROLES,ANDTHENTHEPRINCIPALWILLHAVETHEPERMISSIONATTACHEDTOTHEROLEINOTHERWORDS,ASECURITYROLEISASETOFAPPLICATIONPERMISSIONSTHATCANBEASSIGNEDTOAUSERORAGROUPOFUSERSUSERSANDGROUPSAUSERISAREALPERSONWITHANACCOUNTONASYSTEMAGROUPISACOLLECTIONOFUSERSEITHERAUSERORAGROUPCANBEMAPPEDTOALOGICALSECURITYROLEINTHEOPERATIONALENVIRONMENT,ITISTHEUSERSANDGROUPSWHOUSETHEAPPLICATION,BUTTHEYLIVEOUTSIDEOFEJBSO,INORDERTOGETINTOTHEEJBAPPLICATION,THEYCHANGEINTOPRINCIPALSANDSECURITYROLESNOTETHEEJBARCHITECTUREFORDISTRIBUTEDANDPORTABLEENTERPRISEAPPLICATIONSHASSOMEIMPLICATIONSASTOHOWEJBSECURITYSHOULDLOOKLETSEXPLORETHISISSUENEXTSECUTITYINEJBIMPLEMENTATIONOFSECURITYINANYSYSTEMGENERALLYINVOLVESTWOSTAGESIMPLEMENTINGAUSEROFANEJBAPPLICATIONLIVESINASPECIFICOPERATIONALENVIRONMENTANDENTERSTHEJAVAWORLDASAPRINCIPAL,ANDTHEPRINCIPALACCESSESTHEAPPLICATIONBYACQUIRINGONEORMOREROLESDEFINEDWITHINTHEEJBARCHITECTURETHESECURITYINFRASTRUCTUREANDALLOWINGANADMINISTRATORTOSETANDIMPLEMENTSECURITYPOLICIESONAGIVENSYSTEMKEEPINGTHISINMIND,NOTTHATTHEDISTRIBUTEDNATUREANDTHEPORTABILITYCHARACTERISTICOFTHEEJBARCHITECTURESETTHEFOLLOWINGGOALSFOREJBSECURITYSEPARATETHESECURITYINFRASTRUCTUREFROMTHEBUSINESSLOGICOFANAPPLICATION,BECAUSETHEBEANPROVIDER,WHOISANEXPERTINIMPLEMENTINGBUSINESSLOGIC,MAYNOTBEASECURITYEXPERT,ANDSOMEOTHERROLESAREREMEMBERTHATEJBAPPLICATIONSSHOULDBEPORTABLEACROSSMULTIPLEEJBSERVERS,ANDTHOSESERVERSMAYPOSSIBLYBEUSINGDIFFERENTSECURITYMECHANISMSALLOWSECURITYPOLICIESTOBESETATDEPLOYMENTRATHERTHANATCODINGTIMEINORDERTOSUPPORTPORTABILITYTHEEJBROLERESPONSIBILITIESTHESECURITYINFRASTRUCTURETHEAPPLICATIONASSEMBLER,THEDEPLOYER,ANDTHESYSTEMADMINISTRATORPARTICIPATEINSETTINGSECURITYPOLICIESTHEEJBSPECRECOMMENDSTHATTHEBEANPROVIDERSHOULDNEITHERIMPLEMENTSECURITYMECHANISMSNORHARDCODETHESECURITYPOLICIESINTHEBEANSBUSINESSMETHODSSECURITYINEJBISABOUTAUTHORIZATION,FOREXAMPLE,WHOCANHAVEACCESSTOACERTAINBEANMETHODTHECLIENTSOFANAPPLICATIONEXERCISECERTAINSECURITYROLES,ANDTHEPERMISSIONTOCALLMETHODSISASSIGNEDTOTHEROLESDEFININGTHESECURITYROLESITISTHEDEPLOYERSRESPONSIBILITYTODEPLOYTHEAPPLICATIONSECURELYTODOTHISCORRECTLYTHEDEPLOYERNEEDSTOKNOWWHATEACHBUSINESSMETHODDOESINORDERTODETERMINEWHICHUSERCANCALLITHOWEVER,THEDEPLOYERISNOTEXPECTEDTOGOINTOTHESOURCECODESOWEHAVEAPROBLEMHEREISTHESOLUTIONTHEAPPLICATIONASSEMBLERHELPSTHEDEPLOYERBYPROVIDINGTHESECURITYVIEWOFANAPPLICATIONINTHEDEPLOYMENTDESCRIPTORTHESECURITYVIEWCONTAINSASETOFLOGICALSECURITYROLESANDASETOFMETHODPERMISSIONSFOREACHSECURITYROLETHEDEPLOYMENTDESCRIPTORCONTAINSTWOPARTSHATARERELATEDTOSECURITY,WHICHISWRITTENBYTHEBEANPROVIDER,AND,WHICHISWRITTENBYTHEAPPLICATIONASSEMBLERTHEAPPLICATIONASSEMBLERDEFINESTHESECURITYROLESINTHEPARTOFTHEDEPLOYMENTDESCRIPTORTHEAPPLICATIONASSEMBLERISRESPONSIBLEFORTHEFOLLOWINGDEFININGEACHSECURITYROLEUSINGAELEMENTINTHESECTIONOFTHEDEPLOYMENTDESCRIPTORDEFININGTHEELEMENTASASUBELEMENTOFTOGIVETHESECURITYROLEANAMETHISSTEPISMANDATORYDEFININGTHEELEMENTASASUBELEMENTOFTOPROVIDEADESCRIPTIONFORTHESECURITYROLETHISSTEPISOPTIONALASECURITYROLEAPPLIESTOALLTHEENTERPRISEBEANSINTHESAMEEJBJARFILELISTING141SHOWSTWOSECRITYROLESDEFINEDWITHINTHEELEMENTLISTING141INAGIVEN,THEELEMENTISTHEONLYMANDATORYELEMENTTHEELEMENTISUSEDBYTHEDEPLOYERTOASSIGNTHESECURITYROLETOAUSERORAGROUPINTHEACTUALOPERATIONALENVIRONMENTTHEELEMENTISOPTIONALANDISTHERETOHELPTHEDEPLOYERUNDERSTANDWHATTHISROLEISBEFOREASSIGNINGITTOANAPPROPRIATEUSERORGROUPNOTESECURITYINEJBISABOUTAUTHORIZATION,NAMELY,PERMISSIONSTOCALLTHEBEANMETHODSTHISISIMPLEMENTEDINTWOSTEPSGRANTINGMETHODPERMISSIONSTOSECURITYROLESANDMAPPINGSECURITYROLESTOPRINCIPALS,WHICHREPRESENTUSERSLETSEXAMINEHOWMETHODPERMISSIONSAREDEFINEDANDGRANTEDDEFININGMEHODPERMISSIONSAFTERDEFININGTHESECURITYROLES,THEAPPLICATIONASSEMBLERCANASSIGNMETHODPERMISSIONSTOTHEROLES,THATIS,THEMETHODSOFABEANTHATAUSERINTHATROLECANCALLTHEASSEMBLERCANASSIGNANYOFTHEMETHODSEXPOSEDINTHECOMPONENTANDHOMEINTERFACESOFABEANTOAROLEWEDISCUSSFOURDIFFERENTTECHNIQUESFORASSIGNINGMETHODPERMISSIONSTOAROLEGRANTINGPERMISSIONTOALLMETHODSTWOSECURITYROLESNAMEDEMPLOYEEANDHRDIRECTORDEFINEDWITHINTHEELEMENTTHEELEMENTISTHEONLYMANDATORYELEMENTFORATHEROLENAMEINTHEELEMENTISONLYLOGICALANDDOESNOTREPRESENTAUSERORAGROUPINAREALOPERATIONALENVIRONMENTHOWEVER,THEDEPLOYERCANMAPITTOAPRINCIPALTHATREPRESENTSAUSERINTHEREALOPERATIONALENVIRONMENTBYUSINGTHEWILDCARD,THEAPPLICATIONASSEMBLERCANGRANTAROLEPERMISSIONTOALLTHEMETHODSINTHEHOMEANDCOMPONENTINTERFACESOFABEANANEXAMPLEISSHOWNHERETHISCODEMEANSTHATTHEROLEHRDIRECTORHASBEENGRANTEDPERMISSIONTOCALLALLMETHODSINTHEHOMEANDCOMPONENTINTERFACESOFTHEBEANSEMPLOYEERECORDBEANANDEMPLOYEEPROGRESSBEANINOTHEROTHERWORDS,ABEANCLIENTINTHEROLEOFHRDIRECTORCANALLANYMETHODFROMTHECLIENTVIEWSOFTHEBEANSEMPLOYEERECORDBEANANDEMPLOYEEPROGRESSBEANTHISISASWEEPINGAUTHORIZATIONFORAROLEBUTNOTANULTIMATEONETHEULTIMATEAUTHORIZATIONWOULDBETHATANYCLIENTCOULDCALLANYMETHODOFABEANWITHOUTBEINGCHECKEDFORAUTHORIZATION,ANDTHATISACCOMPLISHEDWITHTHEELEMENTTHEFOLLOWINGCODEFRAGMENTMEANSTHATANYMETHODFROMTHECLIENTVIEWOFTHEBEANEMPLOYEERECORDBEANCANBECALLEDBYANYCLIENTUNCHECKEDNOTETHATTHEELEMENTREPLACESTHEELEMENTACLIENTATRUNTIMEISALLOWEDTOCALLABEANMETHODONLYIFTHEDEPLOYERHASMAPPEDTHEPRINCIPALASSOCIATEDWITHTHECLIENTCALLTOASECURITYROLETHATHASPERMISSIONTOCALLTHEMETHOD,ORTHEMETHODISDECLAREDUNCHECKEDNOWYOUKNOWHOWAPARTICULARROLECANBEALLOWEDTOCALLANYMETHODOFABEANANDHOWALLCLIENTSCANBEALLOWEDTOCALLANYMETHODOFTHEBEANSECURITYATTHISLEVELISFAIRLYLOOSEYOUCANTIGHTENSECURITYFURTHERBYGRANTINGPERMISSIONATTHEMETHODLEVEL,WHICHWEEXPLORENEXTGRANTINGPERMISSIONMETHODBYMETHODTHEAPPLICATIONASSEMBLERCANALLOWAROLETOCALLAPARTICULARMETHODOFTHEHOMEORCOMPONENTINTERFACEBYNAMINGTHEMETHODALONGWITHNAMINGTHEBEANINTHEDEPLOYMENTDESCRIPTORANEXAMPLEISSHOWNHEREINTHISEXAMPLE,THEROLEHRDIRECTORHASBEENGRATEDPERMISSIONTOCALLTHECHANGEEMAILMETHODOFEMPLOYEERECORDBEANIFTHEMETHODCHAGEEMAILISOVERLOADED,THENTHEPERMISSIONWILLAPPLYTOALLOVERLOADEDVESIONSOFTHECHAGEEMAILMETHODINOTHERWORDS,THECLIENTINTHEROLEOFHRDIRECTORISPERMITTEDTOCALLANYVERSIONOFTHEOVERLOADEDMETHODCHAGEEMAILIFYOUWANTTOALLOWTHECHAGEEMAILMETHODTOBECALLEDBYANYCLIENTWITHOUTBEINGCHECKEDFORAUTHORIZATION,YOUWOULDAGAINUSETHEELEMENTWITHTHETECHNIQUEDISCUSSEDINTHISSECTION,THEPERMISSIONGRANTEDFORAMETHODWOULDAPPLYTOALLVERSIONSOFTHEOVERLOADEDMETHODWHATIFYOUWANTTOASSIGNDIFFERENTSECURITYTODIFFERENTVERSIONSOFANOVERLOADEDMETHODTHEFOLLOWINGSECTIONSHOWSHOWTODOTHATDISTINGUISHINGBETWEENOVERLOADEDMETHODSTHEAPPLICATIONASSEMBLERCANGRANTPERMISSIONFORSPECIFICVESIONSOFANOVERLOADEDMETHODBYNAMINGTHEMETHODANDITSARGUMENTSHEREISANEXAMPLETHISMEANSTHATTHEROLEHRDIRECTORISGRANTEDPERMISSIONONLYTOTHECHAGEEMAILMETHOD,WHICHHASTWOARGUMENTSOFTYPESTRINGWHATIFAMETHODINTHEHOMEINTERFACEHASTHESAMENAMEASAMETHODINTHECOMPONENTINTERFACE,ANDYOUWANTTOGRANTDIFFERENTPERMISSIONSFORBOTHLETSSEEHOWTODOTHATNEXTDISTINGUISHINGBETWEENINTERFACESABEANMAYHAVETWOMETHODSWITHTHESAMENAMEEXPOSEDINTHEHOMEANDCOMPONENTINTERFACESIFTHEMETHODSNEEDTOHAVEDIFFERENTPERMISSIONS,THEAPPLICATIONASSEMBLERCANSPECIFYTHENAMEOFTHEINTERFACEALONGWITHTHENAMEOFTHEMETHODBYUSINGTHEELEMENTFOREXAMPLETHEELEMENTMUSTBEONEOFTHEFOLLOWINGHOMEREMOTELOCALHOMELOCALTHESEVALUESINTHEELEMENTCORRESPONDTOTHEFOURPOSSIBLEINTERFACESTHEHOMEINTERFACE,THEREMOTECOMPONENTINTERFACE,THELOCALHOMEINTERFACE,ANDTHELOCALCOMPONENTINTERFACE,RESPECTIVELYOFTEN,ONEBEANWILLNEEDTOCALLMETHODSONANOTHERBEANTHISWAY,THEORGINALCLIENTCALLMAYTRIGGERACHAINOFCALLSTHEQUESTIONISWHATWOULDBETHESECURITYIDENTITYPROPAGATINGALONGTHISCHAINTHENEXTSECTIONEXPLORESTHEANSWERTOTHISQUESTIONCONTROLLINGTHEPROPAGATINGSECURITYIDENTITYASECURITYIDENTITYISATTACHEDTOTHECLIENTSCALLTOABEANTHISMEANSTHATWHENACLIENTCALLSABEAN,ACALLERSPRINCIPALISALWAYSATTACHEDTOTHECALL,WHICHYOUCANDETERMINEBYINVOKINGTHEGETCALLERPRINCIPALMETHODOFTHEEJBCONTEXTTHECLIENTSPRINCIPALHASASECURITYROLEASSIGNEDTOITTHATACTSASASECURITYIDENTITYOFTHEPRINCIPALORTHECALLASSUMETHATANEMPLOYEECLIENTCALLSMETHODGETPAIDOFPAYMENTBEAN,ANDGETPAIDCALLSMETHODGETSSNOFRECORDBEANTHECLIENTSPRINCIPALANDHENCETHESECURITYIDENTITYWILLPROPAGATEFROMGETPAIDTOGETSSNBECAUSEOFTHESECURITYIDENTITYPROPAGATINGWITHTHEMETHODCALLWHATIFITISNECESSARYFORGETPAIDTOBEABLETOCALLGETSSN,FOREXAMPLE,TOVERIFYTHEIDENTITYOFTHECALLERINOTHERWORDS,THEREWILLBESITUATIONSWHEREYOUWANTTOCHANGETHESECUTITYINACHAINOFCALLS,TOMAKEITMORERELAXEDORMORERESTRICTIVEFOREXAMPLE,WHENTHECLIENTINOUREXAMPLECALLSGETPAID,ANDGETPAIDINTURNCALLSGETSSN,WEWANTTHECALLTOGOTHROUGH,ANDINTHISCAE,WECANDOITONLYBYCHANGINGTHESECURITYROLEGOINGOUTOFPAYMENTBEANINTORECORDBEANTOHRADMINISTRATORWECANACCOMPLISHTHISBYUSINGTHEELEMENTWITHINTHEELEMENTINTHESECTIONOFTHEDEPLOYMENTDESCRIPTORANEXAMPLEFOLLOWSTHISMEANSTHATWHENEVERPAYMENTBEANNEEDSTOCALLANOTHERBEAN,ITWILLHAVETHEPERMISSIONSOFTHEHRADMINISHTRATORSECURITYROLEALERTABEANSDOESNOTCHANGETHESECURITYIDENTITYOFINCOMINGMETHODCALLSITISASSIGNEDTOOUTGOINGMETHODCALLSTHEMETHODSOFPAYMENTBEANWILLRUNINTHECALLERSSECURITYIDENTITYIFYOUDONTSPECIFYTHEELEMENTORIFYOUSPECIFYITWITHTHEELEMENTINTHISCASE,WHENPAYMENTBEANCALLSAMETHODOFRECORDBEAN,ITWILLUSETHESAMESECURITYIDENTITYTHATITRECEIVEDFROMITSCALLERALERTNOTETHATTHEIDENTITYAPPLIESTOABEANASAWHOLE,THATIS,TOALLMETHODSOFTHEHOMEANDCOMPONENTINTERFACESOFASESSIONANDENTITYBEAN,TOTHEONMESSAGEMETHODOFANMDB,ANDTOALLOTHERBEANMETHODSTHATMAYCOMEINTHECHAINOFCALLSITISTHERESPONSIBILITYOFTHEAPPLICATIONASSEMBLERTODEFINETHEELEMENTDECLARINGSECURITYPOLICIESINTHEDEPLOYMENTDESCRIPTORISCALLEDDECLARATIVESECURITY,WHILEHARDCODINGTHESECURITYPOLICIESBYTHEBEANPROVIDERISCALLEDPROGRAMMATICSECURITYTHEREWILLBETIMESWHENYOUWANTTODISABLEAMETHODINOTHERWORDS,NOCLIENTSHOULDBEABLETOCALLTHISMETHODREGARDLESSOFTHESECURITYIDENTITYTHECLIENTHASLETSEXPLOREHOWTOACCOMPLISHTHATDISABLINGMETHODSSOMETIMESYOUWILLWANTTODISABLEAMETHODOFANAPPLICATION,SOTHATNOCLIENTCANBECAUSEAMESSAGEDRIVENBEANMDBHASNOCLIENTVIEW,THEDEPLOYMENTDESCRIPTORSHOULDNEVERHAVEDEFINEDFORANMDB,MDBSCANUSETHEELEMENTINTHEELEMENTCALLTHEMETHODREGARDLESSOFWHATSECURITYROLEISASSIGNEDTOTHEPRINCIPALREPRESENTINGTHECLIENTFOREXAMPLE,SAYTHATTHEAPPLICATIONOFFEREDADISCOUNTFORACERTAINPERIODOFTIMEBYUSINGAMETHOD,ANDNOWTHEDISCOUNTPERIODISOVERANDTHATMETHODNEEDSTOBEMADEINACCESSIBLETOLISTTHEMETHODSTHATCANNOTBECALLED,THEAPPLICATIONASSEMBLERCANUSETHEELEMENTASOPPOSEDTOTHEELEMENTINTHESECTIONOFTHEDEPLOYMENTDESCRIPTORANEXAMPLECODEFRAGMENTISGIVENHEREWHATIFAMETHODISLISTEDBOTHINANDININTHATCASE,WILLOVERRIDEFORTHATMETHODTHEDEPLOYERMUSTMAKESURETHATNOCLIENTCANCALLTHEMETHODSOFAR,WEHAVEEXPLOREDTHEROLESOFTHEBEANDEPLOYERANDTHEAPPLICATIONASSEMBLERINSPECIFYINGSECURITYPOLICIESWHATKINDOFROLECANABEANPROVIDERPLAYINDETERMININGSECURITYPOLICYWEEXPLORETHISTOPICNEXTPROGRAMMINGSECURITYTHEEJBSPECIFICATIONSRECOMMENDAGAINSTTHEBEANPROVIDERPROGRAMMINGSECURITYPOLICIESHOWEVER,THEREMAYBESITUATIONSWHEREYOUWILDISCOVERTHATTHEDECLARATIVESECURITYISNOTFLEXIBLEENOUGHTOSATISFYTHESECURITYNEEDSOFANAPPLICATIONINTHATCASEYOUMAYCONSIDERHARDCODINGSECURITYATTHECOSTOFPORTABILITYLETSBEGINBYIDENTIFYINGTHELIMITATIONSOFDECLARATIVESECURITYTHATWEHAVEDISCUSSEDINTHISCHAPTERSOFAREJB的安全性介绍EJB提供的安全管理是一项重要的服务。该EJB中的低水平的安全基础设施是由容器提供者提供的工具。安全政策是规定部署时间,以使BEAN轻便的通过应用软件。EJB的安全归结为哪些用户获得许可要求用哪些方法BEAN。用户定义的EJB外,在具体的操作环境(例如,在UNIX机器上用KANDOLA为用户名的用户GURMAILKANDOLA作为一个会员的用户组工程,已获得了通过MYSQL数据库服务器等许可)。该EJB的代码,用户作为JAVASECURITYPRINCIPAL类的一个实例。PRINCIPALS是映射到安全角色,决定了一个方法可以使PRINCIPAL类能通过应用汇编语言界定了逻辑安全角色,以及把它们配置PRINCIPALS。一种方法要求从客户端可能引发的BEANTOBEAN链的请求,正如我们上一章探索事务看到的。安全性是如何在这些链请求时传播呢各种EJB角色是如何为了制定安全政策分离责任的呢这些问题指向一些我们这章将要探索的重要问题。这章的目的是了解EJB的安全性以及如何从方法对方法和角色对角色产生安全分配和责任。为了完成这个目标,我们将探讨三个方法在EJB中完全声明式安全和编程性安全,从角色到角色的责任流程中决定安全政策和在方法请求的序列中的安全身份流程。EJB中安全性的实现EJB的安全系统内部各部分是由容器提供者实现的,而安全政策是由其他EJB角色在配置和运行时间决定的。在这部分我们讨论由EJB建筑学和他们如何遇到的方式提出的安全需求。首先我们介绍基础安全概念,为了领会这章剩下的重要的部分,你需要掌握这个概念。理解基础安全概念为了了解EJB安全性的不同特色和破败的部分如何组合在一起,你要知道基础安全条款是什么意思。首先我们简要的介绍这些条款。证明和授权在一个系统中证明授权重新发送两个级别的安全,就像一个电脑系统或者一个在电脑上运行的应用。证明包括为了让你能登录系统显示你的ID,例如你的登录名和口令。授权决定一旦你登录系统后,你能做什么不能做什么。例如你先用证明通过输入你的登录名和口令登录一个文件服务。一旦你登录进来,你发现这个文件的设置你只能读,另一个文件的设置你能读也能改变,其他的文件设置你甚至不能读。这就是授权的安全部分。在EJB中,授权意味着一个客户被授权使用BEAN方法。PRINCIPALS和角色一个PRINCIPAL是一个实体,它能被一个系统鉴别。例如,它能看作一个最终用户或者一个应用试图访问另一个应用。在JAVA中,一旦实体被系统授权,它作为一个JAVASECURITYPRINCIPAL实例表现。在EJB中,由安全组合者把一个PRINCIPAL和一个或多个安全角色联合起来。一个安全角色有一组许可分配给它。一个PRINCIPAL被映射他这些角色上,之后这个PRINCIPAL将有访问这个角色的许可。换句话说,一个安全角色是一组应用许可,它可以分配给一个用户(或者一组用户)。用户和组一个用户是一个拥有系统帐户的真是的人。一个组是多个用户的集合。不管是用户或者组都能被映射到一个逻辑的安全角色。在操作环境中,它是使用应用的用户和组,但是它们存在于EJB外部,为了进入EJB应用,它们转换成PRINCIPALS和安全角色。注意分布式和便携式企业应用的EJB构造对关于EJB安全应该如何看的问题有一些含意。我们下一步探究这个问题。EJB中的安全在任何系统中安全的含意大体上包括两个阶段执行基础安全,之后允许管理人在给定的系统上规定和执行安全政策。在头脑中保留这个,倒不是分布式的状态和轻便的特征为了EJB安全EJB构造设定了下列目标从一个应用的商业逻辑中区分基础安全,因为BEAN的提供者熟悉实现商业逻辑,也许不是安全专家或者一些其他角色。记住EJB应用应该轻便的通过多重EJB服务,其中这些服务可能使用不同的安全机制。允许在配置甚至在编码编码时间设定安全政策,为了支持轻便性。EJB角色为基础安全负责。应用的汇编、配置和在安全设定中系统管理人的参与。EJB说明介绍BEAN的提供者在BEAN的商业方法中应该即没有执行安全机制也没有硬编安全政策EJB中的安全是关于授权,例如谁能有权访问某个BEAN方法。一个应用的客户检验某个安全角色,并且这个请求的方法分配给这个角色。定义安全角色配置应用的安全性是部署者的责任。为了正确的做到这点,部署者需要了解每个事物的方法以便确定哪个用户能访问它。然而,部署者不能期望探究源代码。所以我们有一个在EJB应用中的一个用户存在于一个特殊的操作环境并且作为一个PRINCIPAL进入JAVA世界,这个PRINCIPAL通过要求包含EJB在内被定义的一个或多个角色访问应用。问题。解决方法应用编译者帮助部署者通过在配置描述器中提供应用的安全视图。安全视图包括一组逻辑安全角色和一组方法方法为每个安全角色许可。配置描述器包括两个涉及安全的部分是有由BEAN的提供者编写,是由应用组合者编写。应用组合者决定安全角色在配置描述器部分。应用组合者由以下部分负责使用用配置描述器中部分的元素定义每个安全角色。定义元素作为的子元素给安全角色命名。这个步骤是强制的。定义元素作为的子元素为安全角色提供描述。这个步骤是可选择的。安全角色将应用于所有在EJBJAR同样文件夹下的企业级BEAN。141列表展示2个包含元素定义的安全角色。在给予的中,元素是唯一的强制元素。配置者使用元素给在实际操作环境中的一个或一组用户分配安全角色。元素是可选的是帮助分配者在把他分配给一个给适当的用户或一组用户前了解这个角色是什么。注意两个安全角色命名为EMPLOYEE和HRDIRECTOR用元素定义。元素只是的强制的元素。在元素中的角色名字是仅仅是逻辑的不能在实际的操作环境中描绘一个或一组用户。然而,配置者能把它描绘到PRINCIPAL类,并且能在实际的操作环境中描绘一个或一组用户。EJB中的安全是关于授权的,也就是允许请求一个方法BEAN。通过2个步骤实现为安全角色批准方法许可,把安全角色映射到描述用户的PRINCIPALS类。让我们调查一下方法许可是如何定义和准许的。定义方法许可定义安全角色之后,应用组合者能给角色分配方法许可,还句话说一个BEAN的方法可以让那个角色的一个用户请求。这个组合者能分配任何方法,这个方法暴露在一个BEAN到一个角色的组件接口和HOME接口中。我们来讨论一下4个不同的技术方法来为一个角色分配方法许可。为所有方法准予许可通过使用通配符,在一个BEAN的HOME接口和组件接口中,应用组合者能给所有的方法给予一个角色许可。这是一个例子这段代码表示角色HRDIRECTOR已经给予了请求所有方法的许可,这些方法在HOME接口和组件接口中的EMPLOYEERECORDBEAN和EMPLOYEEPROGRESSBEAN。换句话说,在HRDIRECTOR角色中的一个BEAN用户能请求任何在EMPLOYEERECORDBEAN和EMPLOYEEPROGRESSBEAN中的用户视图方法。这个为一个角色给予广泛的授权,但是不是最终的。这个最终的授权将使任何用户能够请求任何BEAN方法,不用在验证许可,而且它是用元素完成的。下面的代码段表示任何方法BEAN的EMPLOYEERECORDBEAN(来自用户的视图层)能被任何没有验证的用户使用注意元素代替了元素。在运行时的用户只有当配置者已经把PRINCIPAL联合到用户,访问一个安全角色有一个许可去访问这个方法,或者这个方法是公开的未经检查的。现在你了解了一个特殊的角色如何得到去访问任何BEAN方法的许可,所有用户如何得到访问BEAN的所有方法的许可。这个阶段的安全相当于开放了,你可以通过在方法层面的批准来加强安全,这个是我们下一步探索的。通过方法来批准方法许可应用组合者允许一个角色通过在配置描述器中命名方法连同命名BEAN来允许角色请求HOME接口和组件接口的特殊方法。下面是一个例子在这个例子中,HRDIRECTOR角色获得了请求EMPLOYEERECORDBEAN中的CHANGEEMAIL方法的许可。如果CHANGEEMAIL方法重载,那么这个许可将应用到所有重载版本的CHAGEEMAIL方法;换句话说,在HRDIRECTOR角色中的用户允许访问任何版本的CHANGEEMAIL重载方法。如果你想允许CHANGEEMAIL方法能被任何没有授权许可的用户访问,你需要重新使用元素。通过这章的技术讨论,为方法获得的许可将应用到所

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论