Produced by Araxis Merge on 3/29/2017 4:53:29 PM Eastern Daylight 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 | CTT-DM CIF Submission.zip\code\ISAAC-rest\src\main\java\gov\vha\isaac\rest\session | UserServiceUtils.java | Fri Mar 3 16:21:48 2017 UTC |
| 2 | CTT-DM CIF Submission.zip\code\ISAAC-rest\src\main\java\gov\vha\isaac\rest\session | UserServiceUtils.java | Wed Mar 29 17:43:39 2017 UTC |
| Description | Between Files 1 and 2 |
|
|---|---|---|
| Text Blocks | Lines | |
| Unchanged | 8 | 690 |
| Changed | 7 | 14 |
| Inserted | 0 | 0 |
| Removed | 0 | 0 |
| Whitespace | |
|---|---|
| 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 | * Copyrig ht Notice | |
| 3 | * | |
| 4 | * This is a work of the U.S. Government and is no t subject to copyrig ht | |
| 5 | * protect ion in the United St ates. Fore ign copyri ghts may a pply. | |
| 6 | * | |
| 7 | * License d under th e Apache L icense, Ve rsion 2.0 (the "Lice nse"); | |
| 8 | * you may not use t his file e xcept in c ompliance with the L icense. | |
| 9 | * You may obtain a copy of th e License at | |
| 10 | * | |
| 11 | * http:// www.apache .org/licen ses/LICENS E-2.0 | |
| 12 | * | |
| 13 | * Unless required b y applicab le law or agreed to in writing , software | |
| 14 | * distrib uted under the Licen se is dist ributed on an "AS IS " BASIS, | |
| 15 | * WITHOUT WARRANTIE S OR CONDI TIONS OF A NY KIND, e ither expr ess or imp lied. | |
| 16 | * See the License f or the spe cific lang uage gover ning permi ssions and | |
| 17 | * limitat ions under the Licen se. | |
| 18 | */ | |
| 19 | ||
| 20 | package go v.vha.isaa c.rest.ses sion; | |
| 21 | ||
| 22 | import jav a.io.IOExc eption; | |
| 23 | import jav a.net.URL; | |
| 24 | import jav a.net.URLE ncoder; | |
| 25 | import jav a.util.Col lection; | |
| 26 | import jav a.util.Col lections; | |
| 27 | import jav a.util.Has hMap; | |
| 28 | import jav a.util.Has hSet; | |
| 29 | import jav a.util.Lis t; | |
| 30 | import jav a.util.Map ; | |
| 31 | import jav a.util.Opt ional; | |
| 32 | import jav a.util.Set ; | |
| 33 | import jav a.util.UUI D; | |
| 34 | ||
| 35 | import jav ax.ws.rs.c lient.Clie nt; | |
| 36 | import jav ax.ws.rs.c lient.Clie ntBuilder; | |
| 37 | import jav ax.ws.rs.c ore.Respon se; | |
| 38 | ||
| 39 | import com .fasterxml .jackson.c ore.JsonPa rseExcepti on; | |
| 40 | import com .fasterxml .jackson.d atabind.Js onMappingE xception; | |
| 41 | import com .fasterxml .jackson.d atabind.Ob jectMapper ; | |
| 42 | ||
| 43 | import gov .vha.isaac .MetaData; | |
| 44 | import gov .vha.isaac .ochre.api .LookupSer vice; | |
| 45 | import gov .vha.isaac .ochre.api .UserRole; | |
| 46 | import gov .vha.isaac .ochre.api .util.Uuid T5Generato r; | |
| 47 | ||
| 48 | /** | |
| 49 | * | |
| 50 | * {@link UserServic eUtils} | |
| 51 | * | |
| 52 | * @author <a href=" mailto:joe l.kniaz.li st@gmail.c om">Joel K niaz</a> | |
| 53 | * | |
| 54 | */ | |
| 55 | public cla ss UserSer viceUtils { | |
| 56 | pu blic stati c final St ring TEST_ JSON1 = "{ \"roles\": [" | |
| 57 | + "{\"id\":1 9990,\"nam e\":\"read _only\",\" resource_i d\":null,\ "resource_ type\":nul l,\"create d_at\":\"2 016-09-13T 14:48:18.0 00Z\",\"up dated_at\" :\"2016-09 -13T14:48: 18.000Z\"} " | |
| 58 | + "," | |
| 59 | + "{\"id\":1 9991,\"nam e\":\"edit or\",\"res ource_id\" :null,\"re source_typ e\":null,\ "created_a t\":\"2016 -09-13T14: 48:18.000Z \",\"updat ed_at\":\" 2016-09-13 T14:48:18. 000Z\"}" | |
| 60 | + "," | |
| 61 | + "{\"id\":1 9992,\"nam e\":\"revi ewer\",\"r esource_id \":null,\" resource_t ype\":null ,\"created _at\":\"20 16-09-13T1 4:48:18.00 0Z\",\"upd ated_at\": \"2016-09- 13T14:48:1 8.000Z\"}" | |
| 62 | + "," | |
| 63 | + "{\"id\":1 9993,\"nam e\":\"admi nistrator\ ",\"resour ce_id\":nu ll,\"resou rce_type\" :null,\"cr eated_at\" :\"2016-09 -13T14:48: 18.000Z\", \"updated_ at\":\"201 6-09-13T14 :48:18.000 Z\"}" | |
| 64 | + "," | |
| 65 | + "{\"id\":1 9994,\"nam e\":\"mana ger\",\"re source_id\ ":null,\"r esource_ty pe\":null, \"created_ at\":\"201 6-09-13T14 :48:18.000 Z\",\"upda ted_at\":\ "2016-09-1 3T14:48:18 .000Z\"}" | |
| 66 | + "," | |
| 67 | + "{\"id\":1 9995,\"nam e\":\"appr over\",\"r esource_id \":null,\" resource_t ype\":null ,\"created _at\":\"20 16-09-13T1 4:48:18.00 0Z\",\"upd ated_at\": \"2016-09- 13T14:48:1 8.000Z\"}" | |
| 68 | + "],\"token _parsed?\" :true,\"us er\":\" DN S D NS \",\"type\ ":\"ssoi\" ,\"id\":10 005}"; | |
| 69 | pu blic stati c final St ring TEST_ JSON2 = "{ \"roles\": [" | |
| 70 | + "{\"id\":1 0000,\"nam e\":\"read _only\",\" resource_i d\":null,\ "resource_ type\":nul l,\"create d_at\":\"2 016-09-13T 14:48:18.0 00Z\",\"up dated_at\" :\"2016-09 -13T14:48: 18.000Z\"} " | |
| 71 | + "],\"token _parsed?\" :true,\"us er\":\" DNS DN S
|
|
| 72 | pu blic stati c final St ring TEST_ JSON3 = "{ \"roles\": [" | |
| 73 | + "{\"id\":1 0000,\"nam e\":\"read _only\",\" resource_i d\":null,\ "resource_ type\":nul l,\"create d_at\":\"2 016-09-13T 14:48:18.0 00Z\",\"up dated_at\" :\"2016-09 -13T14:48: 18.000Z\"} " | |
| 74 | + "," | |
| 75 | + "{\"id\":1 9991,\"nam e\":\"edit or\",\"res ource_id\" :null,\"re source_typ e\":null,\ "created_a t\":\"2016 -09-13T14: 48:18.000Z \",\"updat ed_at\":\" 2016-09-13 T14:48:18. 000Z\"}" | |
| 76 | + "],\"token _parsed?\" :true,\"us er\":\" DNS DN S
|
|
| 77 | ||
| 78 | pr ivate User ServiceUti ls() {} | |
| 79 | ||
| 80 | /* * | |
| 81 | * | |
| 82 | * Attempt t o construc t a user f rom a stri ng of the following format: | |
| 83 | * | |
| 84 | * {name}:{r ole1}[{,ro le2}[{,rol e3}[...]]] | |
| 85 | * | |
| 86 | * @param ar g | |
| 87 | * @return | |
| 88 | * / | |
| 89 | st atic Optio nal<String > construc tTestUser( String arg ) { | |
| 90 | try { | |
| 91 | String [] compone nts = arg. split(":") ; | |
| 92 | ||
| 93 | String name = nu ll; | |
| 94 | Set<Us erRole> ro les = new HashSet<>( ); | |
| 95 | if (co mponents.l ength == 2 ) { | |
| 96 | if (comp onents[0]. matches("[ A-Za-z][A- Za-z0-9_]* ")) { | |
| 97 | name = com ponents[0] .trim(); | |
| 98 | ||
| 99 | String[] r oleStrings = compone nts[1].spl it(","); | |
| 100 | ||
| 101 | for (int i = 0; i < roleString s.length; ++i) { | |
| 102 | ro les.add(Us erRole.saf eValueOf(r oleStrings [i].trim() ).get()); | |
| 103 | } | |
| 104 | } | |
| 105 | } | |
| 106 | ||
| 107 | if (na me != null && name.l ength() > 0 && roles .size() > 0) { | |
| 108 | StringBu ilder buil der = new StringBuil der(); | |
| 109 | builder. append("{\ "roles\":[ "); | |
| 110 | boolean addedRole = false; | |
| 111 | for (Use rRole role : roles) { | |
| 112 | if (addedR ole) { | |
| 113 | bu ilder.appe nd(","); | |
| 114 | } | |
| 115 | builder.ap pend("{\"i d\":19990, \"name\":\ "" + role. toString() + "\",\"r esource_id \":null,\" resource_t ype\":null ,\"created _at\":\"20 16-09-13T1 4:48:18.00 0Z\",\"upd ated_at\": \"2016-09- 13T14:48:1 8.000Z\"}" ); | |
| 116 | ||
| 117 | addedRole = true; | |
| 118 | } | |
| 119 | ||
| 120 | builder. append("], \"token_pa rsed?\":tr ue,\"user\ ":\"" + na me + "\",\ "type\":\" ssoi\",\"i d\":10005} "); | |
| 121 | ||
| 122 | return O ptional.of (builder.t oString()) ; | |
| 123 | } | |
| 124 | } ca tch (Excep tion e) { | |
| 125 | // ign ore | |
| 126 | } | |
| 127 | ||
| 128 | retu rn Optiona l.empty(); | |
| 129 | } | |
| 130 | ||
| 131 | pu blic stati c Optional <User> get UserFromTe stToken(St ring ssoTo ken) throw s JsonPars eException , JsonMapp ingExcepti on, IOExce ption { | |
| 132 | Stri ng jsonToU se = null; | |
| 133 | ||
| 134 | Opti onal<Strin g> created Json = con structTest User(ssoTo ken); | |
| 135 | if ( createdJso n.isPresen t()) { | |
| 136 | jsonTo Use = crea tedJson.ge t(); | |
| 137 | } el se { | |
| 138 | if (ss oToken.equ als(TEST_J SON1)) { | |
| 139 | jsonToUs e = TEST_J SON1; | |
| 140 | } else if (ssoTo ken.equals (TEST_JSON 2)) { | |
| 141 | jsonToUs e = TEST_J SON2; | |
| 142 | } else if (ssoTo ken.equals (TEST_JSON 3)) { | |
| 143 | jsonToUs e = TEST_J SON3; | |
| 144 | } else if (ssoTo ken.equals ("TEST_JSO N1")) { | |
| 145 | jsonToUs e = TEST_J SON1; | |
| 146 | } else if (ssoTo ken.equals ("TEST_JSO N2")) { | |
| 147 | jsonToUs e = TEST_J SON2; | |
| 148 | } else if (ssoTo ken.equals ("TEST_JSO N3")) { | |
| 149 | jsonToUs e = TEST_J SON3; | |
| 150 | } else { | |
| 151 | // Eithe r a real S SO token o r custom J SON | |
| 152 | jsonToUs e = ssoTok en; | |
| 153 | } | |
| 154 | } | |
| 155 | ||
| 156 | /* | |
| 157 | * E xample URL for get_r oles_by_to ken | |
| 158 | * URL url = new URL( "https:// DNS . DNS /rails_pri sme/roles/ get_roles_ by_token.j son?token= " + token) ; | |
| 159 | */ | |
| 160 | User newUser = null; | |
| 161 | try { | |
| 162 | newUse r = UserSe rviceUtils .getUserFr omJson(jso nToUse); | |
| 163 | } ca tch (Excep tion e) { | |
| 164 | try { | |
| 165 | newUser = UserServ iceUtils.g etUserFrom Json(TEST_ JSON1); | |
| 166 | } catc h (IOExcep tion e1) { | |
| 167 | throw ne w RuntimeE xception(e 1); | |
| 168 | } | |
| 169 | } | |
| 170 | ||
| 171 | User Cache.put( newUser); | |
| 172 | ||
| 173 | retu rn Optiona l.of(newUs er); | |
| 174 | } | |
| 175 | ||
| 176 | // pr ivate stat ic Optiona l<String> safeGetTok en(String id, String password) { | |
| 177 | // try { | |
| 178 | // return Optional. of(getToke n(id, pass word)); | |
| 179 | // } ca tch (Excep tion e) { | |
| 180 | // System .err.print ln(e); | |
| 181 | // e.prin tStackTrac e(); | |
| 182 | // return Optional. empty(); | |
| 183 | // } | |
| 184 | // } | |
| 185 | // pr ivate stat ic String getToken(S tring id, String pas sword) thr ows Except ion { | |
| 186 | // URL url = new URL("https ://vadev.m antech.com :4848/rail s_prisme/r oles/get_u ser_roles. json"); | |
| 187 | // Clie nt client = ClientBu ilder.newC lient(); | |
| 188 | // Resp onse respo nse = clie nt.target( "https://v adev.mante ch.com:484 8") | |
| 189 | // .path(ur l.getPath( )) | |
| 190 | // .queryPa ram("id", id) | |
| 191 | // .queryPa ram("passw ord", pass word) | |
| 192 | // .request ().get(); | |
| 193 | // Stri ng respons eJson = re sponse.rea dEntity(St ring.class ); | |
| 194 | // | |
| 195 | // Obje ctMapper m apper = ne w ObjectMa pper(); | |
| 196 | // Map< ?, ?> map = null; | |
| 197 | // try { | |
| 198 | // map = mapper.rea dValue(res ponseJson, Map.class ); | |
| 199 | // } ca tch (Excep tion e) { | |
| 200 | // throw new Except ion("Faile d parsing json \"" + responseJ son); | |
| 201 | // } fi nally { | |
| 202 | // client .close(); | |
| 203 | // } | |
| 204 | // | |
| 205 | // Syst em.out.pri ntln("Outp ut for id= \"" + id + "\", pass word=\"" + password + "\": \"" + map + " \""); | |
| 206 | // | |
| 207 | // retu rn (String )map.get(" token"); | |
| 208 | // } | |
| 209 | pr ivate stat ic void te stToken(St ring token ) { | |
| 210 | Pris meIntegrat edUserServ ice servic e = Lookup Service.ge tService(P rismeInteg ratedUserS ervice.cla ss); | |
| 211 | ||
| 212 | Pris meServiceU tils.getPr ismeProper ties().set Property( | |
| 213 | "prisme_ roles_by_t oken_url", | |
| 214 | "https:/ /vadev.man tech.com:4 848/rails_ prisme/rol es/get_rol es_by_toke n.json"); | |
| 215 | Pris meServiceU tils.getPr ismeProper ties().set Property( | |
| 216 | "prisme_ roles_by_t oken_url", | |
| 217 | "https:/ /vadev.man tech.com:4 848/rails_ prisme/rol es/get_rol es_by_toke n.json"); | |
| 218 | try { | |
| 219 | URL ur l = new UR L(service. getPrismeR olesByToke nUrl()); | |
| 220 | ||
| 221 | Client client = ClientBuil der.newCli ent(); | |
| 222 | ||
| 223 | Respon se respons e = client .target(Pr ismeServic eUtils.get TargetFrom Url(url)) | |
| 224 | .path(url. getPath()) | |
| 225 | .queryPara m("token", token) | |
| 226 | .request() .get(); | |
| 227 | // Respon se respons e = client .target("h ttps://vad ev.mantech .com:4848/ rails_pris me/roles/g et_roles_b y_token.js on") | |
| 228 | // .queryPara m("id", "c ris@cris.c om") | |
| 229 | // .queryPara m("passwor d", "cris@ cris.com") | |
| 230 | // .queryPara m("token", ssoToken) | |
| 231 | // .request() .get(); | |
| 232 | String responseJ son = resp onse.readE ntity(Stri ng.class); | |
| 233 | ||
| 234 | Object Mapper map per = new ObjectMapp er(); | |
| 235 | Map<?, ?> map = null; | |
| 236 | try { | |
| 237 | map = ma pper.readV alue(respo nseJson, M ap.class); | |
| 238 | } catc h (Excepti on e) { | |
| 239 | throw ne w Exceptio n("Failed parsing js on \"" + r esponseJso n); | |
| 240 | } fina lly { | |
| 241 | client.c lose(); | |
| 242 | } | |
| 243 | ||
| 244 | System .out.print ln("Output : \"" + ma p + "\""); | |
| 245 | } ca tch (Excep tion e) { | |
| 246 | e.prin tStackTrac e(); | |
| 247 | } | |
| 248 | } | |
| 249 | ||
| 250 | pu blic stati c void mai n(String.. .argv) thr ows Except ion { | |
| 251 | // * E xample URL for get_r oles_by_to ken | |
| 252 | // * URL url = new URL( "https:// DNS . DNS /rails_pri sme/roles/ get_roles_ by_token.j son?token= " + token) ; | |
| 253 | ||
| 254 | //{" user":"joe l.kniaz@ve tsez.com", "roles":[" read_only" ,"super_us er","admin istrator"] ,"token":" %5B%22u%5C f%5Cx8F%5C xB1X%5C%22 %5CxC7%5Cx F2%5CxE8%5 CxA5%5CxD8 %5CxE3t%5C xFFUK%22%2 C+%22%2CJ% 5Cx83%5CxA 3%5Cx13k%5 Cx96%5CxFC %5CxE6%5Cx F3%5CxCF%5 CxF2%7C%5C xB8MK%22%2 C+%224%5Cf %5Cx8C%5Cx BA%5Cx1Ft% 5CxDD%5CxB 5%5CxA4%5C xB8%5CxC0% 5CxE9Q%5Cx AB%5CnK%22 %2C+%22z%5 D%5Cx83%5C xAFT%7B%5C x9C%5CxB3% 5CxE8%5CxA C%5CxA7%5C x95%5Cx17% 5CxDBiL%22 %5D"} | |
| 255 | //fi nal String s soToken = "%5B%22u%5 Cf%5Cx8F%5 CxB1X%5C%2 2%5CxC2%5C xEE%5CxFA% 5CxE1%5Cx9 1%5CxBF3%5 CxA9%5Cx16 K%22%2C+%2 2%7EK%5CxC 4%5CxEFX%7 C%5Cx96%5C xA8%5CxA3% 5CxA2%5CxC 4%5CxB1%3D %5CxFF%5Cx 01K%22%2C+ %22oC%5Cx8 3%5CxF7%40 %3A%5Cx94% 5CxAC%5CxA F%5CxB6%5C xE1%5CxF4c %5CxB8%5Cb K%22%2C+%2 2+M%5Cx89% 5CxB8Xe%5C xF9%5CxD4% 5CxC0%5CxD B%5CxAB%5C x99%5Ce%5C xD7e%40%22 %5D"; | |
| 256 | ||
| 257 | //{" user":"rea donly@read only.com", "roles":[" read_only" ],"token": "%5B%22u%5 Cf%5Cx8F%5 CxB1X%5C%2 2%5CxC6%5C xF2%5CxE8% 5CxA5%5CxD 8%5CxE3t%5 CxFFUK%22% 2C+%22%2CJ %5Cx83%5Cx A3%5Cx13k% 5Cx96%5CxF C%5CxE6%5C xF3%5CxCF% 5CxF2%7C%5 CxB8MK%22% 2C+%224%5C f%5Cx94%5C xB0%5Ce%7C %5Cx9C%5Cx B0%5CxA6%5 CxA8%5CxE1 %5CxE1t%5C xBC%5CvK%2 2%2C+%22a% 40%5Cx8A%5 CxACT%7B%5 Cx9C%5CxB3 %5CxE8%5Cx AC%5CxA7%5 Cx95%5Cx17 %5CxDBiL%2 2%5D"} | |
| 258 | //fi nal String readOnlyS soToken = "%5B%22u%5 Cf%5Cx8F%5 CxB1X%5C%2 2%5CxC6%5C xF2%5CxE8% 5CxA5%5CxD 8%5CxE3t%5 CxFFUK%22% 2C+%22%2CJ %5Cx83%5Cx A3%5Cx13k% 5Cx96%5CxF C%5CxE6%5C xF3%5CxCF% 5CxF2%7C%5 CxB8MK%22% 2C+%224%5C f%5Cx94%5C xB0%5Ce%7C %5Cx9C%5Cx B0%5CxA6%5 CxA8%5CxE1 %5CxE1t%5C xBC%5CvK%2 2%2C+%22a% 40%5Cx8A%5 CxACT%7B%5 Cx9C%5CxB3 %5CxE8%5Cx AC%5CxA7%5 Cx95%5Cx17 %5CxDBiL%2 2%5D"; | |
| 259 | ||
| 260 | // D an (read_o nly) | |
| 261 | //fi nal String ssoToken = "%5B%22u %5Cf%5Cx8F %5CxB1X%5C %22%5CxC0% 5CxF2%5CxE 8%5CxA5%5C xD8%5CxE3t %5CxFFUK%2 2%2C+%22%2 CJ%5Cx83%5 CxA3%5Cx13 k%5Cx96%5C xFC%5CxE6% 5CxF3%5CxC F%5CxF2%7C %5CxB8MK%2 2%2C+%224% 5Cf%5Cx85% 5CxA7%5Cx1 3k%5CxB3%5 CxBD%5CxB8 %5CxB8%5Cx D2%5CxBDr% 5CxB2%5Cx0 2K%22%2C+% 22%2CS%5Cx E8%5CxDBt% 5Cx16%5CxF D%5CxD0%5C xC4%5CxDF% 5CxAF%5Cx9 D%5Cx1F%5C xD3aD%22%5 D"; | |
| 262 | // G reg (super _user) | |
| 263 | //fi nal String ssoToken = "%5B%22u %5Cf%5Cx8F %5CxB1X%5C %22%5CxC2% 5CxEE%5CxF A%5CxE1%5C x91%5CxBF3 %5CxA9%5Cx 16K%22%2C+ %22%7EK%5C xC4%5CxEFX %7C%5Cx96% 5CxA8%5CxA 3%5CxA2%5C xC4%5CxB1% 3D%5CxFF%5 Cx01K%22%2 C+%22oC%5C x83%5CxF7% 40%3A%5Cx9 4%5CxAC%5C xAF%5CxB6% 5CxE1%5CxF 4c%5CxB8%5 CbK%22%2C+ %22+M%5Cx8 9%5CxB8Xe% 5CxF9%5CxD 4%5CxC0%5C xDB%5CxAB% 5Cx99%5Ce% 5CxD7e%40% 22%5D"; | |
| 264 | ||
| 265 | // r ead_only ( read_only) | |
| 266 | //fi nal String ssoToken = "%5B%22u %5Cf%5Cx8F %5CxB1X%5C %22%5CxC2% 5CxEE%5CxF A%5CxE1%5C x91%5CxBF3 %5CxA9%5Cx 16K%22%2C+ %22%7EK%5C xC4%5CxEFX %7C%5Cx96% 5CxA8%5CxA 3%5CxA2%5C xC4%5CxB1% 3D%5CxFF%5 Cx01K%22%2 C+%22oC%5C x83%5CxF7% 40%3A%5Cx9 4%5CxAC%5C xAF%5CxB6% 5CxE1%5CxF 4c%5CxB8%5 CbK%22%2C+ %22+M%5Cx8 9%5CxB8Xe% 5CxF9%5CxD 4%5CxC0%5C xDB%5CxAB% 5Cx99%5Ce% 5CxD7e%40% 22%5D"; | |
| 267 | ||
| 268 | //fi nal String urlStr = "https://v adev.mante ch.com:484 8/rails_pr isme/roles /get_roles _by_token. json?id=cr is@cris.co m&password =cris@cris .com&token =" + ssoTo ken; | |
| 269 | //fi nal String url = "ht tps://vade v.mantech. com:4848/r ails_prism e/roles/ge t_roles_by _token.jso n?token=" + ssoToken ; | |
| 270 | ||
| 271 | Pris meUserServ ice PRISME _USER_SERV ICE = Look upService. getService (PrismeInt egratedUse rService.c lass); | |
| 272 | ||
| 273 | test Token(PRIS ME_USER_SE RVICE.getT oken("joel .kniaz@vet sez.com", "joel.knia z@vetsez.c om")); | |
| 274 | test Token(PRIS ME_USER_SE RVICE.getT oken("read only@reado nly.com", "readonly@ readonly.c om")); | |
| 275 | } | |
| 276 | ||
| 277 | st atic User getUserFro mJson(Stri ng jsonToU se) throws JsonParse Exception, JsonMappi ngExceptio n, IOExcep tion { | |
| 278 | Obje ctMapper m apper = ne w ObjectMa pper(); | |
| 279 | Map< ?, ?> map = null; | |
| 280 | map = mapper.r eadValue(j sonToUse, Map.class) ; | |
| 281 | ||
| 282 | Stri ng userNam e = (Strin g)map.get( "user"); | |
| 283 | Set< UserRole> roleSet = new HashSe t<>(); | |
| 284 | Coll ection<?> roles = (C ollection< ?>)map.get ("roles"); | |
| 285 | for (Object ro leMapObjec t : roles) { | |
| 286 | Map<?, ?> roleMap = (Map<?, ?>)roleMap Object; | |
| 287 | String roleName = (String) roleMap.ge t("name"); | |
| 288 | ||
| 289 | roleSe t.add(User Role.safeV alueOf(rol eName).get ()); | |
| 290 | } | |
| 291 | ||
| 292 | fina l UUID uui dFromUserF sn = UserS erviceUtil s.getUuidF romUserNam e(userName );; | |
| 293 | ||
| 294 | User newUser = new User( userName, uuidFromUs erFsn, rol eSet); | |
| 295 | ||
| 296 | retu rn newUser ; | |
| 297 | } | |
| 298 | ||
| 299 | st atic Set<U serRole> g etAllRoles FromUrl(UR L url) thr ows JsonPa rseExcepti on, JsonMa ppingExcep tion, IOEx ception { | |
| 300 | Stri ng jsonRes ultString = PrismeSe rviceUtils .getResult JsonFromPr isme(Prism eServiceUt ils.getTar getFromUrl (url), url .getPath() ); | |
| 301 | ||
| 302 | Set< UserRole> roles = ne w HashSet< >(); | |
| 303 | ||
| 304 | Obje ctMapper m apper = ne w ObjectMa pper(); | |
| 305 | Obje ct returne dObject = mapper.rea dValue(jso nResultStr ing, List. class); | |
| 306 | ||
| 307 | for (Object ro leFromPris me : (List <?>)return edObject) { | |
| 308 | roles. add(UserRo le.valueOf (roleFromP risme.toSt ring())); | |
| 309 | } | |
| 310 | ||
| 311 | retu rn Collect ions.unmod ifiableSet (roles); | |
| 312 | } | |
| 313 | st atic Strin g getUserS soTokenFro mUrl(URL u rl, String id, Strin g password ) throws E xception { | |
| 314 | Map< String, St ring> para ms = new H ashMap<>() ; | |
| 315 | para ms.put("id ", id); | |
| 316 | para ms.put("pa ssword", p assword); | |
| 317 | Stri ng jsonRes ultString = PrismeSe rviceUtils .getResult JsonFromPr isme(Prism eServiceUt ils.getTar getFromUrl (url), url .getPath() , params); | |
| 318 | ||
| 319 | Obje ctMapper m apper = ne w ObjectMa pper(); | |
| 320 | Map< ?, ?> map = null; | |
| 321 | try { | |
| 322 | map = mapper.rea dValue(jso nResultStr ing, Map.c lass); | |
| 323 | } ca tch (Excep tion e) { | |
| 324 | throw new Except ion("Faile d parsing json \"" + jsonResul tString); | |
| 325 | } | |
| 326 | //Sy stem.out.p rintln("Ou tput for i d=\"" + id + "\", pa ssword=\"" + passwor d + "\": \ "" + map + "\""); | |
| 327 | ||
| 328 | retu rn (String )map.get(" token"); | |
| 329 | } | |
| 330 | ||
| 331 | st atic UUID getUuidFro mUserName( String use rName) { | |
| 332 | retu rn UuidT5G enerator.g et(MetaDat a.USER.get Primordial Uuid(), us erName); | |
| 333 | } | |
| 334 | ||
| 335 | st atic Optio nal<User> getUserFro mUrl(URL u rl, String ssoToken) throws Js onParseExc eption, Js onMappingE xception, IOExceptio n { | |
| 336 | // /* | |
| 337 | // * E xample URL for get_r oles_by_to ken | |
| 338 | // * URL url = new URL( "https:// DNS c. DNS /rails_pri sme/roles/ get_roles_ by_token.j son?token= " + token) ; | |
| 339 | // */ | |
| 340 | // /* | |
| 341 | // * E xample SSO Token | |
| 342 | // * % 5B%22u%5Cf %5Cx8F%5Cx B1X%5C%22% 5CxC2%5CxE E%5CxFA%5C xE1%5Cx94% 5CxBF3%5Cx A9%5Cx16K% 22%2C+%22% 7EK%5CxC4% 5CxEFXk%5C x80%5CxB1% 5CxA3%5CxF 3%5Cx8D%5C xB1%5Cx7F% 5CxBC%5Cx0 2K%22%2C+% 22k%5Cf%5C xDC%5CxF7% 2CP%5CxB2% 5Cx97%5Cx9 9%5Cx99%5C xE0%5CxE1% 7C%5CxBF%5 Cx1DK%22%2 C+%22J%5Cf %5Cx9B%5Cx D8w%5Cx15% 5CxFE%5CxD 3%5CxC7%5C xDC%5CxAC% 5Cx9E%5Cx1 C%5CxD0bG% 22%5D | |
| 343 | // */ | |
| 344 | // //String j son = "{\" roles\":[{ \"id\":100 00,\"name\ ":\"read_o nly\",\"re source_id\ ":null,\"r esource_ty pe\":null, \"created_ at\":\"201 6-09-13T14 :48:18.000 Z\",\"upda ted_at\":\ "2016-09-1 3T14:48:18 .000Z\"}], \"token_pa rsed?\":tr ue,\"user\ ":\" DN S D NS \",\"type\ ":\"ssoi\" ,\"id\":10 005}"; | |
| 345 | ||
| 346 | Map< String, St ring> para ms = new H ashMap<>() ; | |
| 347 | para ms.put("to ken", URLE ncoder.enc ode(ssoTok en, "UTF-8 ")); | |
| 348 | Stri ng jsonRes ultString = PrismeSe rviceUtils .getResult JsonFromPr isme(Prism eServiceUt ils.getTar getFromUrl (url), url .getPath() , params); | |
| 349 | ||
| 350 | retu rn Optiona l.of(UserS erviceUtil s.getUserF romJson(js onResultSt ring)); | |
| 351 | } | |
| 352 | } |
Araxis Merge (but not the data content of this report) is Copyright © 1993-2016 Araxis Ltd (www.araxis.com). All rights reserved.