You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

SecuritySystemStub.java 24KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712
  1. package org.apache.archiva.web.rss;
  2. /*
  3. * Licensed to the Apache Software Foundation (ASF) under one
  4. * or more contributor license agreements. See the NOTICE file
  5. * distributed with this work for additional information
  6. * regarding copyright ownership. The ASF licenses this file
  7. * to you under the Apache License, Version 2.0 (the
  8. * "License"); you may not use this file except in compliance
  9. * with the License. You may obtain a copy of the License at
  10. *
  11. * http://www.apache.org/licenses/LICENSE-2.0
  12. *
  13. * Unless required by applicable law or agreed to in writing,
  14. * software distributed under the License is distributed on an
  15. * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
  16. * KIND, either express or implied. See the License for the
  17. * specific language governing permissions and limitations
  18. * under the License.
  19. */
  20. import org.apache.archiva.redback.authentication.AuthenticationDataSource;
  21. import org.apache.archiva.redback.authentication.AuthenticationException;
  22. import org.apache.archiva.redback.authentication.AuthenticationResult;
  23. import org.apache.archiva.redback.authentication.TokenManager;
  24. import org.apache.archiva.redback.authorization.AuthorizationException;
  25. import org.apache.archiva.redback.authorization.AuthorizationResult;
  26. import org.apache.archiva.redback.keys.KeyManager;
  27. import org.apache.archiva.redback.policy.AccountLockedException;
  28. import org.apache.archiva.redback.policy.UserSecurityPolicy;
  29. import org.apache.archiva.redback.system.DefaultSecuritySession;
  30. import org.apache.archiva.redback.system.SecuritySession;
  31. import org.apache.archiva.redback.system.SecuritySystem;
  32. import org.apache.archiva.redback.users.User;
  33. import org.apache.archiva.redback.users.UserManager;
  34. import org.apache.archiva.redback.users.UserManagerException;
  35. import org.apache.archiva.redback.users.UserManagerListener;
  36. import org.apache.archiva.redback.users.UserNotFoundException;
  37. import org.apache.archiva.redback.users.UserQuery;
  38. import org.apache.archiva.redback.users.jpa.model.JpaUser;
  39. import java.util.ArrayList;
  40. import java.util.Date;
  41. import java.util.HashMap;
  42. import java.util.List;
  43. import java.util.Map;
  44. /**
  45. * SecuritySystem stub used for testing.
  46. */
  47. public class SecuritySystemStub
  48. implements SecuritySystem
  49. {
  50. Map<String, String> users = new HashMap<>();
  51. List<String> repoIds = new ArrayList<>();
  52. public SecuritySystemStub()
  53. {
  54. users.put( "user1", "password1" );
  55. users.put( "user2", "password2" );
  56. users.put( "user3", "password3" );
  57. repoIds.add( "test-repo" );
  58. }
  59. @Override
  60. public SecuritySession authenticate( AuthenticationDataSource source )
  61. throws AuthenticationException, UserNotFoundException, AccountLockedException
  62. {
  63. AuthenticationResult result = null;
  64. SecuritySession session = null;
  65. if ( users.get( source.getUsername() ) != null )
  66. {
  67. result = new AuthenticationResult( true, source.getUsername(), null );
  68. User user = new JpaUser();
  69. user.setUsername( source.getUsername() );
  70. user.setPassword( users.get( source.getUsername() ) );
  71. session = new DefaultSecuritySession( result, user );
  72. }
  73. else
  74. {
  75. result = new AuthenticationResult( false, source.getUsername(), null );
  76. session = new DefaultSecuritySession( result );
  77. }
  78. return session;
  79. }
  80. @Override
  81. public AuthorizationResult authorize( SecuritySession arg0, String arg1 )
  82. throws AuthorizationException
  83. {
  84. return null;
  85. }
  86. @Override
  87. public AuthorizationResult authorize( SecuritySession arg0, String permission, String repositoryId )
  88. throws AuthorizationException
  89. {
  90. AuthorizationResult result = new AuthorizationResult( this.repoIds.contains( repositoryId ), permission, null );
  91. return result;
  92. }
  93. @Override
  94. public AuthorizationResult authorize( User user, String permission, String resource )
  95. throws AuthorizationException
  96. {
  97. return null;
  98. }
  99. public String getAuthenticatorId()
  100. {
  101. return null;
  102. }
  103. public String getAuthorizerId()
  104. {
  105. return null;
  106. }
  107. @Override
  108. public KeyManager getKeyManager()
  109. {
  110. return null;
  111. }
  112. @Override
  113. public UserSecurityPolicy getPolicy()
  114. {
  115. return null;
  116. }
  117. public String getUserManagementId()
  118. {
  119. return null;
  120. }
  121. @Override
  122. public UserManager getUserManager()
  123. {
  124. return new UserManager()
  125. {
  126. @Override
  127. public String getDescriptionKey()
  128. {
  129. return "French wine is better than Australian wine !";
  130. }
  131. @Override
  132. public boolean isFinalImplementation()
  133. {
  134. return false;
  135. }
  136. @Override
  137. public void initialize()
  138. {
  139. // no op
  140. }
  141. @Override
  142. public boolean isReadOnly()
  143. {
  144. return false;
  145. }
  146. @Override
  147. public String getId()
  148. {
  149. return null;
  150. }
  151. @Override
  152. public void addUserManagerListener( UserManagerListener listener )
  153. {
  154. // no op
  155. }
  156. @Override
  157. public void removeUserManagerListener( UserManagerListener listener )
  158. {
  159. // no op
  160. }
  161. @Override
  162. public User createUser( String username, String fullName, String emailAddress )
  163. {
  164. return null;
  165. }
  166. @Override
  167. public User createGuestUser()
  168. {
  169. return new User()
  170. {
  171. @Override
  172. public String getUsername()
  173. {
  174. return "guest";
  175. }
  176. @Override
  177. public void setUsername( String name )
  178. {
  179. }
  180. @Override
  181. public String getFullName()
  182. {
  183. return null;
  184. }
  185. @Override
  186. public void setFullName( String name )
  187. {
  188. //To change body of implemented methods use File | Settings | File Templates.
  189. }
  190. @Override
  191. public String getEmail()
  192. {
  193. return null; //To change body of implemented methods use File | Settings | File Templates.
  194. }
  195. @Override
  196. public void setEmail( String address )
  197. {
  198. //To change body of implemented methods use File | Settings | File Templates.
  199. }
  200. @Override
  201. public String getPassword()
  202. {
  203. return null; //To change body of implemented methods use File | Settings | File Templates.
  204. }
  205. @Override
  206. public void setPassword( String rawPassword )
  207. {
  208. //To change body of implemented methods use File | Settings | File Templates.
  209. }
  210. @Override
  211. public String getEncodedPassword()
  212. {
  213. return null; //To change body of implemented methods use File | Settings | File Templates.
  214. }
  215. @Override
  216. public void setEncodedPassword( String encodedPassword )
  217. {
  218. //To change body of implemented methods use File | Settings | File Templates.
  219. }
  220. @Override
  221. public Date getLastPasswordChange()
  222. {
  223. return null; //To change body of implemented methods use File | Settings | File Templates.
  224. }
  225. @Override
  226. public void setLastPasswordChange( Date passwordChangeDate )
  227. {
  228. //To change body of implemented methods use File | Settings | File Templates.
  229. }
  230. @Override
  231. public List<String> getPreviousEncodedPasswords()
  232. {
  233. return null; //To change body of implemented methods use File | Settings | File Templates.
  234. }
  235. @Override
  236. public void setPreviousEncodedPasswords( List<String> encodedPasswordList )
  237. {
  238. //To change body of implemented methods use File | Settings | File Templates.
  239. }
  240. @Override
  241. public void addPreviousEncodedPassword( String encodedPassword )
  242. {
  243. //To change body of implemented methods use File | Settings | File Templates.
  244. }
  245. @Override
  246. public boolean isPermanent()
  247. {
  248. return false; //To change body of implemented methods use File | Settings | File Templates.
  249. }
  250. @Override
  251. public void setPermanent( boolean permanent )
  252. {
  253. //To change body of implemented methods use File | Settings | File Templates.
  254. }
  255. @Override
  256. public boolean isLocked()
  257. {
  258. return false; //To change body of implemented methods use File | Settings | File Templates.
  259. }
  260. @Override
  261. public void setLocked( boolean locked )
  262. {
  263. //To change body of implemented methods use File | Settings | File Templates.
  264. }
  265. @Override
  266. public boolean isPasswordChangeRequired()
  267. {
  268. return false; //To change body of implemented methods use File | Settings | File Templates.
  269. }
  270. @Override
  271. public void setPasswordChangeRequired( boolean changeRequired )
  272. {
  273. //To change body of implemented methods use File | Settings | File Templates.
  274. }
  275. @Override
  276. public boolean isValidated()
  277. {
  278. return false; //To change body of implemented methods use File | Settings | File Templates.
  279. }
  280. @Override
  281. public void setValidated( boolean valid )
  282. {
  283. //To change body of implemented methods use File | Settings | File Templates.
  284. }
  285. @Override
  286. public int getCountFailedLoginAttempts()
  287. {
  288. return 0; //To change body of implemented methods use File | Settings | File Templates.
  289. }
  290. @Override
  291. public void setCountFailedLoginAttempts( int count )
  292. {
  293. //To change body of implemented methods use File | Settings | File Templates.
  294. }
  295. @Override
  296. public Date getAccountCreationDate()
  297. {
  298. return null; //To change body of implemented methods use File | Settings | File Templates.
  299. }
  300. @Override
  301. public void setAccountCreationDate( Date date )
  302. {
  303. //To change body of implemented methods use File | Settings | File Templates.
  304. }
  305. @Override
  306. public Date getLastLoginDate()
  307. {
  308. return null; //To change body of implemented methods use File | Settings | File Templates.
  309. }
  310. @Override
  311. public void setLastLoginDate( Date date )
  312. {
  313. //To change body of implemented methods use File | Settings | File Templates.
  314. }
  315. @Override
  316. public String getUserManagerId()
  317. {
  318. return "mock";
  319. }
  320. };
  321. }
  322. @Override
  323. public UserQuery createUserQuery()
  324. {
  325. return null; //To change body of implemented methods use File | Settings | File Templates.
  326. }
  327. @Override
  328. public List<User> getUsers()
  329. {
  330. return null; //To change body of implemented methods use File | Settings | File Templates.
  331. }
  332. @Override
  333. public List<User> getUsers( boolean orderAscending )
  334. {
  335. return null; //To change body of implemented methods use File | Settings | File Templates.
  336. }
  337. @Override
  338. public User addUser( User user )
  339. {
  340. return null; //To change body of implemented methods use File | Settings | File Templates.
  341. }
  342. @Override
  343. public User updateUser( User user )
  344. throws UserNotFoundException
  345. {
  346. return null; //To change body of implemented methods use File | Settings | File Templates.
  347. }
  348. @Override
  349. public User findUser( String username )
  350. throws UserNotFoundException
  351. {
  352. return null; //To change body of implemented methods use File | Settings | File Templates.
  353. }
  354. @Override
  355. public User findUser( String username, boolean useCache )
  356. throws UserNotFoundException, UserManagerException
  357. {
  358. return null;
  359. }
  360. @Override
  361. public User getGuestUser()
  362. throws UserNotFoundException
  363. {
  364. return new User()
  365. {
  366. @Override
  367. public String getUsername()
  368. {
  369. return "guest";
  370. }
  371. @Override
  372. public void setUsername( String name )
  373. {
  374. }
  375. @Override
  376. public String getFullName()
  377. {
  378. return null; //To change body of implemented methods use File | Settings | File Templates.
  379. }
  380. @Override
  381. public void setFullName( String name )
  382. {
  383. //To change body of implemented methods use File | Settings | File Templates.
  384. }
  385. @Override
  386. public String getEmail()
  387. {
  388. return null; //To change body of implemented methods use File | Settings | File Templates.
  389. }
  390. @Override
  391. public void setEmail( String address )
  392. {
  393. //To change body of implemented methods use File | Settings | File Templates.
  394. }
  395. @Override
  396. public String getPassword()
  397. {
  398. return null; //To change body of implemented methods use File | Settings | File Templates.
  399. }
  400. @Override
  401. public void setPassword( String rawPassword )
  402. {
  403. //To change body of implemented methods use File | Settings | File Templates.
  404. }
  405. @Override
  406. public String getEncodedPassword()
  407. {
  408. return null; //To change body of implemented methods use File | Settings | File Templates.
  409. }
  410. @Override
  411. public void setEncodedPassword( String encodedPassword )
  412. {
  413. //To change body of implemented methods use File | Settings | File Templates.
  414. }
  415. @Override
  416. public Date getLastPasswordChange()
  417. {
  418. return null; //To change body of implemented methods use File | Settings | File Templates.
  419. }
  420. @Override
  421. public void setLastPasswordChange( Date passwordChangeDate )
  422. {
  423. //To change body of implemented methods use File | Settings | File Templates.
  424. }
  425. @Override
  426. public List<String> getPreviousEncodedPasswords()
  427. {
  428. return null; //To change body of implemented methods use File | Settings | File Templates.
  429. }
  430. @Override
  431. public void setPreviousEncodedPasswords( List<String> encodedPasswordList )
  432. {
  433. //To change body of implemented methods use File | Settings | File Templates.
  434. }
  435. @Override
  436. public void addPreviousEncodedPassword( String encodedPassword )
  437. {
  438. //To change body of implemented methods use File | Settings | File Templates.
  439. }
  440. @Override
  441. public boolean isPermanent()
  442. {
  443. return false; //To change body of implemented methods use File | Settings | File Templates.
  444. }
  445. @Override
  446. public void setPermanent( boolean permanent )
  447. {
  448. //To change body of implemented methods use File | Settings | File Templates.
  449. }
  450. @Override
  451. public boolean isLocked()
  452. {
  453. return false; //To change body of implemented methods use File | Settings | File Templates.
  454. }
  455. @Override
  456. public void setLocked( boolean locked )
  457. {
  458. //To change body of implemented methods use File | Settings | File Templates.
  459. }
  460. @Override
  461. public boolean isPasswordChangeRequired()
  462. {
  463. return false; //To change body of implemented methods use File | Settings | File Templates.
  464. }
  465. @Override
  466. public void setPasswordChangeRequired( boolean changeRequired )
  467. {
  468. //To change body of implemented methods use File | Settings | File Templates.
  469. }
  470. @Override
  471. public boolean isValidated()
  472. {
  473. return false; //To change body of implemented methods use File | Settings | File Templates.
  474. }
  475. @Override
  476. public void setValidated( boolean valid )
  477. {
  478. //To change body of implemented methods use File | Settings | File Templates.
  479. }
  480. @Override
  481. public int getCountFailedLoginAttempts()
  482. {
  483. return 0; //To change body of implemented methods use File | Settings | File Templates.
  484. }
  485. @Override
  486. public void setCountFailedLoginAttempts( int count )
  487. {
  488. //To change body of implemented methods use File | Settings | File Templates.
  489. }
  490. @Override
  491. public Date getAccountCreationDate()
  492. {
  493. return null; //To change body of implemented methods use File | Settings | File Templates.
  494. }
  495. @Override
  496. public void setAccountCreationDate( Date date )
  497. {
  498. //To change body of implemented methods use File | Settings | File Templates.
  499. }
  500. @Override
  501. public Date getLastLoginDate()
  502. {
  503. return null; //To change body of implemented methods use File | Settings | File Templates.
  504. }
  505. @Override
  506. public void setLastLoginDate( Date date )
  507. {
  508. //To change body of implemented methods use File | Settings | File Templates.
  509. }
  510. @Override
  511. public String getUserManagerId()
  512. {
  513. return "mock";
  514. }
  515. };
  516. }
  517. @Override
  518. public List<User> findUsersByUsernameKey( String usernameKey, boolean orderAscending )
  519. {
  520. return null; //To change body of implemented methods use File | Settings | File Templates.
  521. }
  522. @Override
  523. public List<User> findUsersByFullNameKey( String fullNameKey, boolean orderAscending )
  524. {
  525. return null; //To change body of implemented methods use File | Settings | File Templates.
  526. }
  527. @Override
  528. public List<User> findUsersByEmailKey( String emailKey, boolean orderAscending )
  529. {
  530. return null; //To change body of implemented methods use File | Settings | File Templates.
  531. }
  532. @Override
  533. public List<User> findUsersByQuery( UserQuery query )
  534. {
  535. return null; //To change body of implemented methods use File | Settings | File Templates.
  536. }
  537. @Override
  538. public boolean userExists( String principal )
  539. {
  540. return false; //To change body of implemented methods use File | Settings | File Templates.
  541. }
  542. @Override
  543. public void deleteUser( String username )
  544. throws UserNotFoundException
  545. {
  546. //To change body of implemented methods use File | Settings | File Templates.
  547. }
  548. @Override
  549. public void addUserUnchecked( User user )
  550. {
  551. //To change body of implemented methods use File | Settings | File Templates.
  552. }
  553. @Override
  554. public void eraseDatabase()
  555. {
  556. //To change body of implemented methods use File | Settings | File Templates.
  557. }
  558. @Override
  559. public User updateUser( User user, boolean passwordChangeRequired )
  560. throws UserNotFoundException
  561. {
  562. return null; //To change body of implemented methods use File | Settings | File Templates.
  563. }
  564. };
  565. }
  566. @Override
  567. public boolean isAuthenticated( AuthenticationDataSource arg0 )
  568. throws AuthenticationException, UserNotFoundException, AccountLockedException
  569. {
  570. return false;
  571. }
  572. @Override
  573. public boolean isAuthorized( SecuritySession arg0, String arg1 )
  574. throws AuthorizationException
  575. {
  576. return false;
  577. }
  578. @Override
  579. public boolean isAuthorized( SecuritySession arg0, String arg1, String arg2 )
  580. throws AuthorizationException
  581. {
  582. if ( repoIds.contains( arg2 ) )
  583. {
  584. return true;
  585. }
  586. return false;
  587. }
  588. @Override
  589. public boolean userManagerReadOnly()
  590. {
  591. return true;
  592. }
  593. @Override
  594. public TokenManager getTokenManager() {
  595. return null;
  596. }
  597. }