Produced by Araxis Merge on 11/20/2017 2:16:16 PM GMT Standard Time. See www.araxis.com for information about Merge. This report uses XHTML and CSS2, and is best viewed with a modern standards-compliant browser. For optimum results when printing this report, use landscape orientation and enable printing of background images and colours in your browser.
# | Location | File | Last Modified |
---|---|---|---|
1 | Mon Nov 20 14:16:16 2017 UTC | ||
2 | C:\Merge Test Files\8.5.23\java\org\apache\catalina\authenticator\jaspic | SimpleServerAuthConfig.java | Thu Sep 28 11:32:16 2017 UTC |
Description | Between Files 1 and 2 |
|
---|---|---|
Text Blocks | Lines | |
Unchanged | 0 | 0 |
Changed | 0 | 0 |
Inserted | 1 | 153 |
Removed | 0 | 0 |
Whitespace | Consecutive whitespace is treated as a single space |
---|---|
Character case | Differences in character case are significant |
Line endings | Differences in line endings (CR and LF characters) are ignored |
CR/LF characters | Not shown in the comparison detail |
No regular expressions were active.
1 | /** | |||||
2 | * Licens ed to the Apache Sof tware Foun dation (AS F) under o ne or more | |||||
3 | * contri butor lice nse agreem ents. See the NOTIC E file dis tributed w ith | |||||
4 | * this w ork for ad ditional i nformation regarding copyright ownership . | |||||
5 | * The AS F licenses this file to You un der the Ap ache Licen se, Versio n 2.0 | |||||
6 | * (the " License"); you may n ot use thi s file exc ept in com pliance wi th | |||||
7 | * the Li cense. Yo u may obta in a copy of the Lic ense at | |||||
8 | * | |||||
9 | * htt p://www.ap ache.org/l icenses/LI CENSE-2.0 | |||||
10 | * | |||||
11 | * Unless required by applica ble law or agreed to in writin g, softwar e | |||||
12 | * distri buted unde r the Lice nse is dis tributed o n an "AS I S" BASIS, | |||||
13 | * WITHOU T WARRANTI ES OR COND ITIONS OF ANY KIND, either exp ress or im plied. | |||||
14 | * See th e License for the sp ecific lan guage gove rning perm issions an d | |||||
15 | * limita tions unde r the Lice nse. | |||||
16 | */ | |||||
17 | package or g.apache.c atalina.au thenticato r.jaspic; | |||||
18 | ||||||
19 | import jav a.lang.ref lect.Invoc ationTarge tException ; | |||||
20 | import jav a.util.Arr ayList; | |||||
21 | import jav a.util.Has hMap; | |||||
22 | import jav a.util.Lis t; | |||||
23 | import jav a.util.Map ; | |||||
24 | ||||||
25 | import jav ax.securit y.auth.Sub ject; | |||||
26 | import jav ax.securit y.auth.cal lback.Call backHandle r; | |||||
27 | import jav ax.securit y.auth.mes sage.AuthE xception; | |||||
28 | import jav ax.securit y.auth.mes sage.Messa geInfo; | |||||
29 | import jav ax.securit y.auth.mes sage.confi g.ServerAu thConfig; | |||||
30 | import jav ax.securit y.auth.mes sage.confi g.ServerAu thContext; | |||||
31 | import jav ax.securit y.auth.mes sage.modul e.ServerAu thModule; | |||||
32 | ||||||
33 | import org .apache.to mcat.util. res.String Manager; | |||||
34 | ||||||
35 | /** | |||||
36 | * Basic i mplementat ion primar ily intend ed for use when usin g third-pa rty | |||||
37 | * {@link ServerAuth Module} im plementati ons that o nly provid e the modu le. This | |||||
38 | * impleme ntation su pports con figuring t he {@link ServerAuth Context} w ith | |||||
39 | * multipl e modules. | |||||
40 | */ | |||||
41 | public cla ss SimpleS erverAuthC onfig impl ements Ser verAuthCon fig { | |||||
42 | ||||||
43 | privat e static S tringManag er sm = St ringManage r.getManag er(SimpleS erverAuthC onfig.clas s); | |||||
44 | ||||||
45 | privat e static f inal Strin g SERVER_A UTH_MODULE _KEY_PREFI X = | |||||
46 | "org.apa che.catali na.authent icator.jas pic.Server AuthModule ."; | |||||
47 | ||||||
48 | privat e final St ring layer ; | |||||
49 | privat e final St ring appCo ntext; | |||||
50 | privat e final Ca llbackHand ler handle r; | |||||
51 | privat e final Ma p<String,S tring> pro perties; | |||||
52 | ||||||
53 | privat e volatile ServerAut hContext s erverAuthC ontext; | |||||
54 | ||||||
55 | public SimpleSer verAuthCon fig(String layer, St ring appCo ntext, Cal lbackHandl er handler , | |||||
56 | Map<Stri ng,String> propertie s) { | |||||
57 | th is.layer = layer; | |||||
58 | th is.appCont ext = appC ontext; | |||||
59 | th is.handler = handler ; | |||||
60 | th is.propert ies = prop erties; | |||||
61 | } | |||||
62 | ||||||
63 | ||||||
64 | @Overr ide | |||||
65 | public String ge tMessageLa yer() { | |||||
66 | re turn layer ; | |||||
67 | } | |||||
68 | ||||||
69 | ||||||
70 | @Overr ide | |||||
71 | public String ge tAppContex t() { | |||||
72 | re turn appCo ntext; | |||||
73 | } | |||||
74 | ||||||
75 | ||||||
76 | @Overr ide | |||||
77 | public String ge tAuthConte xtID(Messa geInfo mes sageInfo) { | |||||
78 | re turn messa geInfo.toS tring(); | |||||
79 | } | |||||
80 | ||||||
81 | ||||||
82 | @Overr ide | |||||
83 | public void refr esh() { | |||||
84 | se rverAuthCo ntext = nu ll; | |||||
85 | } | |||||
86 | ||||||
87 | ||||||
88 | @Overr ide | |||||
89 | public boolean i sProtected () { | |||||
90 | re turn false ; | |||||
91 | } | |||||
92 | ||||||
93 | ||||||
94 | @Suppr essWarning s({"rawtyp es", "unch ecked"}) / / JASPIC A PI uses ra w types | |||||
95 | @Overr ide | |||||
96 | public ServerAut hContext g etAuthCont ext(String authConte xtID, Subj ect servic eSubject, | |||||
97 | Map prop erties) th rows AuthE xception { | |||||
98 | Se rverAuthCo ntext serv erAuthCont ext = this .serverAut hContext; | |||||
99 | if (serverAu thContext == null) { | |||||
100 | synchron ized (this ) { | |||||
101 | if ( this.serve rAuthConte xt == null ) { | |||||
102 | Map<String ,String> m ergedPrope rties = ne w HashMap< >(); | |||||
103 | if (this.p roperties != null) { | |||||
104 | merged Properties .putAll(th is.propert ies); | |||||
105 | } | |||||
106 | if (proper ties != nu ll) { | |||||
107 | merged Properties .putAll(pr operties); | |||||
108 | } | |||||
109 | ||||||
110 | List<Serve rAuthModul e> modules = new Arr ayList<>() ; | |||||
111 | int module Index = 1; | |||||
112 | String key = SERVER_ AUTH_MODUL E_KEY_PREF IX + modul eIndex; | |||||
113 | String mod uleClassNa me = merge dPropertie s.get(key) ; | |||||
114 | while (mod uleClassNa me != null ) { | |||||
115 | try { | |||||
116 | Cl ass<?> cla zz = Class .forName(m oduleClass Name); | |||||
117 | Se rverAuthMo dule modul e = | |||||
118 | (Ser verAuthMod ule) clazz .getConstr uctor().ne wInstance( ); | |||||
119 | mo dule.initi alize(null , null, ha ndler, mer gedPropert ies); | |||||
120 | mo dules.add( module); | |||||
121 | } catc h (ClassNo tFoundExce ption | In stantiatio nException | | |||||
122 | IllegalA ccessExcep tion | Ill egalArgume ntExceptio n | | |||||
123 | Invocati onTargetEx ception | NoSuchMeth odExceptio n | | |||||
124 | Security Exception e) { | |||||
125 | Au thExceptio n ae = new AuthExcep tion(); | |||||
126 | ae .initCause (e); | |||||
127 | th row ae; | |||||
128 | } | |||||
129 | ||||||
130 | // Loo k for the next modul e | |||||
131 | module Index++; | |||||
132 | key = SERVER_AUT H_MODULE_K EY_PREFIX + moduleIn dex; | |||||
133 | module ClassName = mergedPr operties.g et(key); | |||||
134 | } | |||||
135 | ||||||
136 | if (module s.size() = = 0) { | |||||
137 | throw new AuthEx ception(sm .getString ("simpleSe rverAuthCo nfig.noMod ules")); | |||||
138 | } | |||||
139 | ||||||
140 | this.serve rAuthConte xt = creat eServerAut hContext(m odules); | |||||
141 | } | |||||
142 | serv erAuthCont ext = this .serverAut hContext; | |||||
143 | } | |||||
144 | } | |||||
145 | ||||||
146 | re turn serve rAuthConte xt; | |||||
147 | } | |||||
148 | ||||||
149 | ||||||
150 | protec ted Server AuthContex t createSe rverAuthCo ntext(List <ServerAut hModule> m odules) { | |||||
151 | re turn new S impleServe rAuthConte xt(modules ); | |||||
152 | } | |||||
153 | } |
Araxis Merge (but not the data content of this report) is Copyright © 1993–2017 Araxis Ltd (www.araxis.com). All rights reserved.