1
+ /*
2
+ * Copyright (c) 2015 Espark And ©Adarsh Development Services @copyright All rights reserved.
3
+ *
4
+ * Redistribution and use in source and binary forms, with or without
5
+ * modification, are permitted provided that the following conditions
6
+ * are met:
7
+ *
8
+ * - Redistributions of source code must retain the above copyright
9
+ * notice, this list of conditions and the following disclaimer.
10
+ *
11
+ * - Redistributions in binary form must reproduce the above copyright
12
+ * notice, this list of conditions and the following disclaimer in the
13
+ * documentation and/or other materials provided with the distribution.
14
+ *
15
+ * - Neither the name of Espark nor the names of its
16
+ * contributors may be used to endorse or promote products derived
17
+ * from this software without specific prior written permission.
18
+ *
19
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
20
+ * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
21
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
22
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
23
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
24
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
25
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
26
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
27
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
28
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
29
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30
+ */
31
+ package com .espark .adarsh .configuration ;
32
+
33
+ import org .springframework .beans .factory .annotation .Autowired ;
34
+ import org .springframework .boot .autoconfigure .security .SecurityProperties ;
35
+ import org .springframework .context .annotation .Configuration ;
36
+ import org .springframework .core .annotation .Order ;
37
+ import org .springframework .security .config .annotation .authentication .builders .AuthenticationManagerBuilder ;
38
+ import org .springframework .security .config .annotation .method .configuration .EnableGlobalMethodSecurity ;
39
+ import org .springframework .security .config .annotation .web .builders .HttpSecurity ;
40
+ import org .springframework .security .config .annotation .web .builders .WebSecurity ;
41
+ import org .springframework .security .config .annotation .web .configuration .WebSecurityConfigurerAdapter ;
42
+ import org .springframework .security .core .userdetails .UserDetailsService ;
43
+ import org .springframework .security .crypto .bcrypt .BCryptPasswordEncoder ;
44
+
45
+ /**
46
+ * @author Adarsh Kumar
47
+ * @author $LastChangedBy: Adarsh Kumar$
48
+ * @version $Revision: 0001 $, $Date:: 1/1/10 0:00 AM#$
49
+ * @Espark @copyright all right reserve
50
+ */
51
+
52
+ @ Configuration
53
+ @ EnableGlobalMethodSecurity (prePostEnabled = true )
54
+ @ Order (SecurityProperties .ACCESS_OVERRIDE_ORDER )
55
+ class SpringSecurityConfiguration extends WebSecurityConfigurerAdapter {
56
+
57
+ @ Autowired
58
+ private UserDetailsService userDetailsService ;
59
+
60
+ @ Override
61
+ public void configure (WebSecurity webSecurity ) throws Exception {
62
+ webSecurity .ignoring ().antMatchers ("*.js" )
63
+ .antMatchers ("*.css" )
64
+ .antMatchers ("/imaages/**" )
65
+ .antMatchers ("*.ico" )
66
+ .antMatchers ("/home" )
67
+ .antMatchers ("/public/**" );
68
+ }
69
+
70
+ @ Override
71
+ protected void configure (HttpSecurity http ) throws Exception {
72
+ http .authorizeRequests ()
73
+ .antMatchers ("/users/**" ).hasAuthority ("ADMIN" )
74
+ .anyRequest ().fullyAuthenticated ()
75
+ .and ()
76
+ .formLogin ()
77
+ .loginPage ("/login" )
78
+ .failureUrl ("/login?error" )
79
+ .usernameParameter ("email" )
80
+ .permitAll ()
81
+ .and ()
82
+ .logout ()
83
+ .logoutUrl ("/logout" )
84
+ .deleteCookies ("remember-me" )
85
+ .logoutSuccessUrl ("/" )
86
+ .permitAll ()
87
+ .and ()
88
+ .rememberMe ();
89
+ }
90
+
91
+ @ Override
92
+ public void configure (AuthenticationManagerBuilder authenticationManagerBuilder ) throws Exception {
93
+ authenticationManagerBuilder .userDetailsService (userDetailsService )
94
+ .passwordEncoder (new BCryptPasswordEncoder ());
95
+ }
96
+
97
+ }
0 commit comments