· 6 years ago · Jun 17, 2019, 01:30 PM
1@Entity
2@Table(name = "user")
3public class Users {
4
5 @Id
6 @GeneratedValue(strategy = GenerationType.AUTO)
7 @Column(name = "user_id")
8 private int id;
9 @Column(name = "email")
10 private String email;
11 @Column(name = "password")
12 private String password;
13 @Column(name = "name")
14 private String name;
15 @Column(name = "last_name")
16 private String lastName;
17 @Column(name = "active")
18 private int active;
19 @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER)
20 @JoinTable(name = "user_role", joinColumns = @JoinColumn(name = "user_id"), inverseJoinColumns = @JoinColumn(name = "role_id"))
21 private Set<Role> roles;
22
23@Entity
24@Table(name = "role")
25public class Role {
26
27 @Id
28 @GeneratedValue(strategy = GenerationType.AUTO)
29 @Column(name = "role_id")
30 private int roleId;
31
32 @Column(name = "role")
33 private String role;
34
35public class CustomUsersDetails extends Users implements UserDetails {
36
37 public CustomUsersDetails(final Users users){
38 super(users);
39 }
40
41 @Override
42 public Collection<? extends GrantedAuthority> getAuthorities() {
43// return getRoles().stream()
44// .map(role -> new SimpleGrantedAuthority(role.getRole()))
45// .collect(Collectors.toList());
46
47 List<SimpleGrantedAuthority> simple = new ArrayList<>();
48 simple.add(new SimpleGrantedAuthority("ROLE_USER"));
49 return simple;
50 }
51
52 @Override
53 public String getUsername() {
54 return super.getName();
55 }
56
57 @Override
58 public boolean isAccountNonExpired() {
59 return true;
60 }
61
62 @Override
63 public boolean isAccountNonLocked() {
64 return true;
65 }
66
67 @Override
68 public boolean isCredentialsNonExpired() {
69 return true;
70 }
71
72 @Override
73 public boolean isEnabled() {
74 return true;
75 }
76}
77
78@EnableGlobalMethodSecurity(prePostEnabled = true)
79@EnableWebSecurity
80@EnableJpaRepositories(basePackageClasses = UserRepository.class)
81@Configuration
82public class SecurityConfiguration extends WebSecurityConfigurerAdapter {
83
84 @Autowired
85 CustomUsersDetailsService usersDetailsService;
86
87 @Override
88 protected void configure(AuthenticationManagerBuilder auth) throws Exception {
89// auth.inMemoryAuthentication()
90// .withUser("krzys")
91// .password("{noop}krzys")
92// .roles("USER");
93
94 auth.userDetailsService(usersDetailsService)
95 .passwordEncoder(getPasswordEncoder());
96 }
97
98 private PasswordEncoder getPasswordEncoder() {
99 return new PasswordEncoder() {
100 @Override
101 public String encode(CharSequence charSequence) {
102 return charSequence.toString();
103 }
104
105 @Override
106 public boolean matches(CharSequence charSequence, String s) {
107 return true;
108 }
109 };
110 }
111
112 @Override
113 protected void configure(HttpSecurity http) throws Exception {
114 http.csrf().disable();
115 http.authorizeRequests()
116 .antMatchers(("/"))
117 .authenticated()
118 .anyRequest()
119 .permitAll()
120 .and()
121 .formLogin()
122 .permitAll();
123 }
124}
125
1262019-05-22 20:14:33.458 WARN 13376 --- [io-8082-exec-10] o.h.engine.jdbc.spi.SqlExceptionHelper : SQL Error: 0, SQLState: 42703
1272019-05-22 20:14:33.459 ERROR 13376 --- [io-8082-exec-10] o.h.engine.jdbc.spi.SqlExceptionHelper : BŁĄD: kolumna users0_.user_id nie istnieje
128 Wskazówka: Być może chodziło ci o wskazanie kolumny "users0_.users0_".
129 Pozycja: 8
1302019-05-22 20:14:33.472 ERROR 13376 --- [io-8082-exec-10] w.a.UsernamePasswordAuthenticationFilter : An internal error occurred while trying to authenticate the user.
131
132org.springframework.security.authentication.InternalAuthenticationServiceException: could not extract ResultSet; SQL [n/a]; nested exception is org.hibernate.exception.SQLGrammarException: could not extract ResultSet
133 at org.springframework.security.authentication.dao.DaoAuthenticationProvider.retrieveUser(DaoAuthenticationProvider.java:123) ~[spring-security-core-5.1.5.RELEASE.jar:5.1.5.RELEASE]
134 at org.springframework.security.authentication.dao.AbstractUserDetailsAuthenticationProvider.authenticate(AbstractUserDetailsAuthenticationProvider.java:144) ~[spring-security-core-5.1.5.RELEASE.jar:5.1.5.RELEASE]
135 at org.springframework.security.authentication.ProviderManager.authenticate(ProviderManager.java:175) ~[spring-security-core-5.1.5.RELEASE.jar:5.1.5.RELEASE]
136 at org.springframework.security.authentication.ProviderManager.authenticate(ProviderManager.java:200) ~[spring-security-core-5.1.5.RELEASE.jar:5.1.5.RELEASE]
137 at org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter.attemptAuthentication(UsernamePasswordAuthenticationFilter.java:94) ~[spring-security-web-5.1.5.RELEASE.jar:5.1.5.RELEASE]
138 at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:212) ~[spring-security-web-5.1.5.RELEASE.jar:5.1.5.RELEASE]
139 at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) [spring-security-web-5.1.5.RELEASE.jar:5.1.5.RELEASE]
140 at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:116) [spring-security-web-5.1.5.RELEASE.jar:5.1.5.RELEASE]
141 at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) [spring-security-web-5.1.5.RELEASE.jar:5.1.5.RELEASE]
142 at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:74) [spring-security-web-5.1.5.RELEASE.jar:5.1.5.RELEASE]
143 at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) [spring-web-5.1.6.RELEASE.jar:5.1.6.RELEASE]
144 at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) [spring-security-web-5.1.5.RELEASE.jar:5.1.5.RELEASE]
145 at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:105) [spring-security-web-5.1.5.RELEASE.jar:5.1.5.RELEASE]
146 at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) [spring-security-web-5.1.5.RELEASE.jar:5.1.5.RELEASE]
147 at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:56) [spring-security-web-5.1.5.RELEASE.jar:5.1.5.RELEASE]
148 at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) [spring-web-5.1.6.RELEASE.jar:5.1.6.RELEASE]
149 at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:334) [spring-security-web-5.1.5.RELEASE.jar:5.1.5.RELEASE]
150 at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:215) [spring-security-web-5.1.5.RELEASE.jar:5.1.5.RELEASE]
151 at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:178) [spring-security-web-5.1.5.RELEASE.jar:5.1.5.RELEASE]
152 at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:357) [spring-web-5.1.6.RELEASE.jar:5.1.6.RELEASE]
153 at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:270) [spring-web-5.1.6.RELEASE.jar:5.1.6.RELEASE]
154 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) [tomcat-embed-core-9.0.17.jar:9.0.17]
155 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) [tomcat-embed-core-9.0.17.jar:9.0.17]
156 at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99) [spring-web-5.1.6.RELEASE.jar:5.1.6.RELEASE]
157 at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) [spring-web-5.1.6.RELEASE.jar:5.1.6.RELEASE]
158 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) [tomcat-embed-core-9.0.17.jar:9.0.17]
159 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) [tomcat-embed-core-9.0.17.jar:9.0.17]
160 at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:92) [spring-web-5.1.6.RELEASE.jar:5.1.6.RELEASE]
161 at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) [spring-web-5.1.6.RELEASE.jar:5.1.6.RELEASE]
162 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) [tomcat-embed-core-9.0.17.jar:9.0.17]
163 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) [tomcat-embed-core-9.0.17.jar:9.0.17]
164 at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:93) [spring-web-5.1.6.RELEASE.jar:5.1.6.RELEASE]
165 at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) [spring-web-5.1.6.RELEASE.jar:5.1.6.RELEASE]
166 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) [tomcat-embed-core-9.0.17.jar:9.0.17]
167 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) [tomcat-embed-core-9.0.17.jar:9.0.17]
168 at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:200) [spring-web-5.1.6.RELEASE.jar:5.1.6.RELEASE]
169 at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) [spring-web-5.1.6.RELEASE.jar:5.1.6.RELEASE]
170 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) [tomcat-embed-core-9.0.17.jar:9.0.17]
171 at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) [tomcat-embed-core-9.0.17.jar:9.0.17]
172 at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:200) [tomcat-embed-core-9.0.17.jar:9.0.17]
173 at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96) [tomcat-embed-core-9.0.17.jar:9.0.17]
174 at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:490) [tomcat-embed-core-9.0.17.jar:9.0.17]
175 at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139) [tomcat-embed-core-9.0.17.jar:9.0.17]
176 at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) [tomcat-embed-core-9.0.17.jar:9.0.17]
177 at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74) [tomcat-embed-core-9.0.17.jar:9.0.17]
178 at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343) [tomcat-embed-core-9.0.17.jar:9.0.17]
179 at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:408) [tomcat-embed-core-9.0.17.jar:9.0.17]
180 at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66) [tomcat-embed-core-9.0.17.jar:9.0.17]
181 at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:834) [tomcat-embed-core-9.0.17.jar:9.0.17]
182 at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1415) [tomcat-embed-core-9.0.17.jar:9.0.17]
183 at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) [tomcat-embed-core-9.0.17.jar:9.0.17]
184 at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [na:1.8.0_191]
185 at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [na:1.8.0_191]
186 at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) [tomcat-embed-core-9.0.17.jar:9.0.17]
187 at java.lang.Thread.run(Thread.java:748) [na:1.8.0_191]
188Caused by: org.springframework.dao.InvalidDataAccessResourceUsageException: could not extract ResultSet; SQL [n/a]; nested exception is org.hibernate.exception.SQLGrammarException: could not extract ResultSet
189 at org.springframework.orm.jpa.vendor.HibernateJpaDialect.convertHibernateAccessException(HibernateJpaDialect.java:279) ~[spring-orm-5.1.6.RELEASE.jar:5.1.6.RELEASE]
190 at org.springframework.orm.jpa.vendor.HibernateJpaDialect.translateExceptionIfPossible(HibernateJpaDialect.java:253) ~[spring-orm-5.1.6.RELEASE.jar:5.1.6.RELEASE]
191 at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.translateExceptionIfPossible(AbstractEntityManagerFactoryBean.java:527) ~[spring-orm-5.1.6.RELEASE.jar:5.1.6.RELEASE]
192 at org.springframework.dao.support.ChainedPersistenceExceptionTranslator.translateExceptionIfPossible(ChainedPersistenceExceptionTranslator.java:61) ~[spring-tx-5.1.6.RELEASE.jar:5.1.6.RELEASE]
193 at org.springframework.dao.support.DataAccessUtils.translateIfNecessary(DataAccessUtils.java:242) ~[spring-tx-5.1.6.RELEASE.jar:5.1.6.RELEASE]
194 at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:153) ~[spring-tx-5.1.6.RELEASE.jar:5.1.6.RELEASE]
195 at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.1.6.RELEASE.jar:5.1.6.RELEASE]
196 at org.springframework.data.jpa.repository.support.CrudMethodMetadataPostProcessor$CrudMethodMetadataPopulatingMethodInterceptor.invoke(CrudMethodMetadataPostProcessor.java:138) ~[spring-data-jpa-2.1.6.RELEASE.jar:2.1.6.RELEASE]
197 at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.1.6.RELEASE.jar:5.1.6.RELEASE]
198 at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:93) ~[spring-aop-5.1.6.RELEASE.jar:5.1.6.RELEASE]
199 at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.1.6.RELEASE.jar:5.1.6.RELEASE]
200 at org.springframework.data.repository.core.support.SurroundingTransactionDetectorMethodInterceptor.invoke(SurroundingTransactionDetectorMethodInterceptor.java:61) ~[spring-data-commons-2.1.6.RELEASE.jar:2.1.6.RELEASE]
201 at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.1.6.RELEASE.jar:5.1.6.RELEASE]
202 at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:212) ~[spring-aop-5.1.6.RELEASE.jar:5.1.6.RELEASE]
203 at com.sun.proxy.$Proxy102.findByName(Unknown Source) ~[na:na]
204 at com.krzysiekoczak.demo.services.CustomUsersDetailsService.loadUserByUsername(CustomUsersDetailsService.java:23) ~[classes/:na]
205 at org.springframework.security.authentication.dao.DaoAuthenticationProvider.retrieveUser(DaoAuthenticationProvider.java:108) ~[spring-security-core-5.1.5.RELEASE.jar:5.1.5.RELEASE]
206 ... 54 common frames omitted
207Caused by: org.hibernate.exception.SQLGrammarException: could not extract ResultSet
208 at org.hibernate.exception.internal.SQLStateConversionDelegate.convert(SQLStateConversionDelegate.java:106) ~[hibernate-core-5.3.9.Final.jar:5.3.9.Final]
209 at org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:42) ~[hibernate-core-5.3.9.Final.jar:5.3.9.Final]
210 at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:113) ~[hibernate-core-5.3.9.Final.jar:5.3.9.Final]
211 at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:99) ~[hibernate-core-5.3.9.Final.jar:5.3.9.Final]
212 at org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.extract(ResultSetReturnImpl.java:69) ~[hibernate-core-5.3.9.Final.jar:5.3.9.Final]
213 at org.hibernate.loader.Loader.getResultSet(Loader.java:2167) ~[hibernate-core-5.3.9.Final.jar:5.3.9.Final]
214 at org.hibernate.loader.Loader.executeQueryStatement(Loader.java:1930) ~[hibernate-core-5.3.9.Final.jar:5.3.9.Final]
215 at org.hibernate.loader.Loader.executeQueryStatement(Loader.java:1892) ~[hibernate-core-5.3.9.Final.jar:5.3.9.Final]
216 at org.hibernate.loader.Loader.doQuery(Loader.java:937) ~[hibernate-core-5.3.9.Final.jar:5.3.9.Final]
217 at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:340) ~[hibernate-core-5.3.9.Final.jar:5.3.9.Final]
218 at org.hibernate.loader.Loader.doList(Loader.java:2689) ~[hibernate-core-5.3.9.Final.jar:5.3.9.Final]
219 at org.hibernate.loader.Loader.doList(Loader.java:2672) ~[hibernate-core-5.3.9.Final.jar:5.3.9.Final]
220 at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2506) ~[hibernate-core-5.3.9.Final.jar:5.3.9.Final]
221 at org.hibernate.loader.Loader.list(Loader.java:2501) ~[hibernate-core-5.3.9.Final.jar:5.3.9.Final]
222 at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:504) ~[hibernate-core-5.3.9.Final.jar:5.3.9.Final]
223 at org.hibernate.hql.internal.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:395) ~[hibernate-core-5.3.9.Final.jar:5.3.9.Final]
224 at org.hibernate.engine.query.spi.HQLQueryPlan.performList(HQLQueryPlan.java:220) ~[hibernate-core-5.3.9.Final.jar:5.3.9.Final]
225 at org.hibernate.internal.SessionImpl.list(SessionImpl.java:1507) ~[hibernate-core-5.3.9.Final.jar:5.3.9.Final]
226 at org.hibernate.query.internal.AbstractProducedQuery.doList(AbstractProducedQuery.java:1537) ~[hibernate-core-5.3.9.Final.jar:5.3.9.Final]
227 at org.hibernate.query.internal.AbstractProducedQuery.list(AbstractProducedQuery.java:1505) ~[hibernate-core-5.3.9.Final.jar:5.3.9.Final]
228 at org.hibernate.query.internal.AbstractProducedQuery.getSingleResult(AbstractProducedQuery.java:1553) ~[hibernate-core-5.3.9.Final.jar:5.3.9.Final]
229 at org.hibernate.query.criteria.internal.compile.CriteriaQueryTypeQueryAdapter.getSingleResult(CriteriaQueryTypeQueryAdapter.java:109) ~[hibernate-core-5.3.9.Final.jar:5.3.9.Final]
230 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_191]
231 at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_191]
232 at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_191]
233 at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_191]
234 at org.springframework.orm.jpa.SharedEntityManagerCreator$DeferredQueryInvocationHandler.invoke(SharedEntityManagerCreator.java:402) ~[spring-orm-5.1.6.RELEASE.jar:5.1.6.RELEASE]
235 at com.sun.proxy.$Proxy110.getSingleResult(Unknown Source) ~[na:na]
236 at org.springframework.data.jpa.repository.query.JpaQueryExecution$SingleEntityExecution.doExecute(JpaQueryExecution.java:214) ~[spring-data-jpa-2.1.6.RELEASE.jar:2.1.6.RELEASE]
237 at org.springframework.data.jpa.repository.query.JpaQueryExecution.execute(JpaQueryExecution.java:91) ~[spring-data-jpa-2.1.6.RELEASE.jar:2.1.6.RELEASE]
238 at org.springframework.data.jpa.repository.query.AbstractJpaQuery.doExecute(AbstractJpaQuery.java:136) ~[spring-data-jpa-2.1.6.RELEASE.jar:2.1.6.RELEASE]
239 at org.springframework.data.jpa.repository.query.AbstractJpaQuery.execute(AbstractJpaQuery.java:125) ~[spring-data-jpa-2.1.6.RELEASE.jar:2.1.6.RELEASE]
240 at org.springframework.data.repository.core.support.RepositoryFactorySupport$QueryExecutorMethodInterceptor.doInvoke(RepositoryFactorySupport.java:605) ~[spring-data-commons-2.1.6.RELEASE.jar:2.1.6.RELEASE]
241 at org.springframework.data.repository.core.support.RepositoryFactorySupport$QueryExecutorMethodInterceptor.lambda$invoke$3(RepositoryFactorySupport.java:595) ~[spring-data-commons-2.1.6.RELEASE.jar:2.1.6.RELEASE]
242 at org.springframework.data.repository.core.support.RepositoryFactorySupport$QueryExecutorMethodInterceptor.invoke(RepositoryFactorySupport.java:595) ~[spring-data-commons-2.1.6.RELEASE.jar:2.1.6.RELEASE]
243 at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.1.6.RELEASE.jar:5.1.6.RELEASE]
244 at org.springframework.data.projection.DefaultMethodInvokingMethodInterceptor.invoke(DefaultMethodInvokingMethodInterceptor.java:59) ~[spring-data-commons-2.1.6.RELEASE.jar:2.1.6.RELEASE]
245 at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.1.6.RELEASE.jar:5.1.6.RELEASE]
246 at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:294) ~[spring-tx-5.1.6.RELEASE.jar:5.1.6.RELEASE]
247 at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:98) ~[spring-tx-5.1.6.RELEASE.jar:5.1.6.RELEASE]
248 at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) ~[spring-aop-5.1.6.RELEASE.jar:5.1.6.RELEASE]
249 at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:139) ~[spring-tx-5.1.6.RELEASE.jar:5.1.6.RELEASE]
250 ... 65 common frames omitted
251Caused by: org.postgresql.util.PSQLException: BŁĄD: kolumna users0_.user_id nie istnieje
252 Wskazówka: Być może chodziło ci o wskazanie kolumny "users0_.users0_".
253 Pozycja: 8
254 at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2440) ~[postgresql-42.2.5.jar:42.2.5]
255 at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:2183) ~[postgresql-42.2.5.jar:42.2.5]
256 at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:308) ~[postgresql-42.2.5.jar:42.2.5]
257 at org.postgresql.jdbc.PgStatement.executeInternal(PgStatement.java:441) ~[postgresql-42.2.5.jar:42.2.5]
258 at org.postgresql.jdbc.PgStatement.execute(PgStatement.java:365) ~[postgresql-42.2.5.jar:42.2.5]
259 at org.postgresql.jdbc.PgPreparedStatement.executeWithFlags(PgPreparedStatement.java:143) ~[postgresql-42.2.5.jar:42.2.5]
260 at org.postgresql.jdbc.PgPreparedStatement.executeQuery(PgPreparedStatement.java:106) ~[postgresql-42.2.5.jar:42.2.5]
261 at com.zaxxer.hikari.pool.ProxyPreparedStatement.executeQuery(ProxyPreparedStatement.java:52) ~[HikariCP-3.2.0.jar:na]
262 at com.zaxxer.hikari.pool.HikariProxyPreparedStatement.executeQuery(HikariProxyPreparedStatement.java) ~[HikariCP-3.2.0.jar:na]
263 at org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.extract(ResultSetReturnImpl.java:60) ~[hibernate-core-5.3.9.Final.jar:5.3.9.Final]
264 ... 102 common frames omitted
265
266DROP TABLE IF EXISTS public.role CASCADE;
267 DROP TABLE IF EXISTS public.user CASCADE;
268
269 CREATE TABLE public.role (
270 role_id serial NOT NULL,
271 role VARCHAR(100),
272 PRIMARY KEY (role_id)
273 );
274
275 CREATE TABLE public.user
276 (
277 user_id serial,
278 name VARCHAR(100),
279 last_name VARCHAR(100),
280 email VARCHAR(100),
281 password VARCHAR(50) NOT NULL,
282 active integer,
283 user_role integer,
284 PRIMARY KEY (user_id),
285 CONSTRAINT FK_roleuser FOREIGN KEY (user_role)
286 REFERENCES role(role_id)
287
288 );
289
290@GetMapping("/users/{name}")
291public ResponseEntity<Users> getUserByName(@PathVariable("name") String name){
292 Users user = userRepository.findByName(name).get();
293
294 return ResponseEntity.ok(user);
295}
296
297@Service
298public class CustomUsersDetailsService implements UserDetailsService {
299
300 @Autowired
301 private UserRepository userRepository;
302
303
304 @Override
305 public UserDetails loadUserByUsername(String s) throws UsernameNotFoundException {
306 Optional<Users> usersOptional = userRepository.findByName(s);
307 usersOptional.orElseThrow(() -> new UsernameNotFoundException("not found"));
308 return usersOptional.map(CustomUsersDetails::new).get();
309 }
310}
311
312-[QUERY] Node: 'query'
313 +-[SELECT_FROM] Node: 'SELECT_FROM'
314 | +-[FROM] Node: 'from'
315 | | -[RANGE] Node: 'RANGE'
316 | | +-[DOT] Node: '.'
317 | | | +-[DOT] Node: '.'
318 | | | | +-[DOT] Node: '.'
319 | | | | | +-[DOT] Node: '.'
320 | | | | | | +-[DOT] Node: '.'
321 | | | | | | | +-[DOT] Node: '.'
322 | | | | | | | | +-[IDENT] Node: 'com'
323 | | | | | | | | -[IDENT] Node: 'xxx'
324 | | | | | | | -[IDENT] Node: 'demo'
325 | | | | | | -[IDENT] Node: 'models'
326 | | | | | -[IDENT] Node: 'pets'
327 | | | | -[IDENT] Node: 'secure'
328 | | | -[IDENT] Node: 'Users'
329 | | -[ALIAS] Node: 'generatedAlias0'
330 | -[SELECT] Node: 'select'
331 | -[IDENT] Node: 'generatedAlias0'
332 -[WHERE] Node: 'where'
333 -[EQ] Node: '='
334 +-[DOT] Node: '.'
335 | +-[IDENT] Node: 'generatedAlias0'
336 | -[IDENT] Node: 'name'
337 -[COLON] Node: ':'
338 -[IDENT] Node: 'param0'
339
3402019-05-22 21:30:39.219 DEBUG 292 --- [nio-8082-exec-5] o.h.hql.internal.antlr.HqlSqlBaseWalker : select << begin [level=1, statement=select]
3412019-05-22 21:30:39.272 DEBUG 292 --- [nio-8082-exec-5] o.h.hql.internal.ast.tree.FromElement : FromClause{level=1} : com.xxx.demo.models.pets.secure.Users (generatedAlias0) -> users0_
3422019-05-22 21:30:39.277 DEBUG 292 --- [nio-8082-exec-5] o.h.h.i.ast.tree.FromReferenceNode : Resolved : generatedAlias0 -> users0_.user_id
3432019-05-22 21:30:39.286 DEBUG 292 --- [nio-8082-exec-5] o.h.h.i.ast.tree.FromReferenceNode : Resolved : generatedAlias0 -> users0_.user_id
3442019-05-22 21:30:39.290 DEBUG 292 --- [nio-8082-exec-5] o.h.hql.internal.ast.tree.DotNode : getDataType() : name -> org.hibernate.type.StringType@b5f08a
3452019-05-22 21:30:39.293 DEBUG 292 --- [nio-8082-exec-5] o.h.h.i.ast.tree.FromReferenceNode : Resolved : generatedAlias0.name -> users0_.name
3462019-05-22 21:30:39.299 DEBUG 292 --- [nio-8082-exec-5] o.h.hql.internal.antlr.HqlSqlBaseWalker : select : finishing up [level=1, statement=select]
3472019-05-22 21:30:39.301 DEBUG 292 --- [nio-8082-exec-5] o.h.hql.internal.ast.HqlSqlWalker : processQuery() : ( SELECT ( {select clause} users0_.user_id ) ( FromClause{level=1} user users0_ ) ( where ( = ( users0_.name users0_.user_id name ) ? ) ) )
3482019-05-22 21:30:39.326 DEBUG 292 --- [nio-8082-exec-5] o.h.hql.internal.ast.util.JoinProcessor : Using FROM fragment [user users0_]
3492019-05-22 21:30:39.327 DEBUG 292 --- [nio-8082-exec-5] o.h.hql.internal.antlr.HqlSqlBaseWalker : select >> end [level=1, statement=select]
3502019-05-22 21:30:39.328 DEBUG 292 --- [nio-8082-exec-5] o.h.h.internal.ast.QueryTranslatorImpl : --- SQL AST ---
351 -[SELECT] QueryNode: 'SELECT' querySpaces (user)
352 +-[SELECT_CLAUSE] SelectClause: '{select clause}'
353 | +-[ALIAS_REF] IdentNode: 'users0_.user_id as user_id1_2_' {alias=generatedAlias0, className=com.xxx.demo.models.pets.secure.Users, tableAlias=users0_}
354 | -[SQL_TOKEN] SqlFragment: 'users0_.active as active2_2_, users0_.email as email3_2_, users0_.last_name as last_nam4_2_, users0_.name as name5_2_, users0_.password as password6_2_'
355 +-[FROM] FromClause: 'from' FromClause{level=1, fromElementCounter=1, fromElements=1, fromElementByClassAlias=[generatedAlias0], fromElementByTableAlias=[users0_], fromElementsByPath=[], collectionJoinFromElementsByPath=[], impliedElements=[]}
356 | -[FROM_FRAGMENT] FromElement: 'user users0_' FromElement{explicit,not a collection join,not a fetch join,fetch non-lazy properties,classAlias=generatedAlias0,role=null,tableName=user,tableAlias=users0_,origin=null,columns={,className=com.xxx.demo.models.pets.secure.Users}}
357 -[WHERE] SqlNode: 'where'
358 -[EQ] BinaryLogicOperatorNode: '='
359 +-[DOT] DotNode: 'users0_.name' {propertyName=name,dereferenceType=PRIMITIVE,getPropertyPath=name,path=generatedAlias0.name,tableAlias=users0_,className=com.xxx.demo.models.pets.secure.Users,classAlias=generatedAlias0}
360 | +-[ALIAS_REF] IdentNode: 'users0_.user_id' {alias=generatedAlias0, className=com.xxx.demo.models.pets.secure.Users, tableAlias=users0_}
361 | -[IDENT] IdentNode: 'name' {originalText=name}
362 -[NAMED_PARAM] ParameterNode: '?' {name=param0, expectedType=org.hibernate.type.StringType@b5f08a}
363
364@JoinTable(name = "user_role", joinColumns = @JoinColumn(name = "user_id"), inverseJoinColumns = @JoinColumn(name = "role_id"))
365
366@JoinTable(name = "user_role", joinColumns = @JoinColumn(name = "user_role"), inverseJoinColumns = @JoinColumn(name = "role_id"))