Skip to content

Commit edfc653

Browse files
Correção de erros e estabilização da aplicação. Ajustes para usar comando encadeado no Dockerfile e subir o serviço do solr e do java ao mesmo tempo
1 parent 7c72859 commit edfc653

File tree

12 files changed

+47
-39
lines changed

12 files changed

+47
-39
lines changed

testeSantanderWay/Dockerfile

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,13 @@ LABEL maintainer="[email protected]"
33
VOLUME /tmp
44
COPY target/app-1.0.0.jar /app.jar
55
COPY target/classes/solr-cores /solr-cores
6+
COPY target/classes/docker-entrypoint.sh /docker-entrypoint.sh
67
RUN apk --update add zip
78
RUN apk --update add bash
89
RUN wget https://archive.apache.org/dist/lucene/solr/8.1.1/solr-8.1.1.zip
910
RUN unzip solr-8.1.1.zip
1011
RUN cp -R ./solr-cores/* solr-8.1.1/server/solr/
11-
RUN bash /solr-8.1.1/bin/solr start -p 8983 -force
12-
EXPOSE 8080 8983
13-
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
12+
EXPOSE 8080
13+
EXPOSE 8983
14+
ENTRYPOINT ["java", "-Djava.security.egd=file:/dev/./urandom", "-jar", "/app.jar"]
15+
CMD ["; nohup ./solr-8.1.1/bin/solr start -force &>/dev/null &"]

testeSantanderWay/src/main/java/br/com/testesantanderway/config/security/ConfigSeguranca.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,8 +48,8 @@ protected void configure(AuthenticationManagerBuilder auth) throws Exception {
4848
protected void configure(HttpSecurity http) throws Exception {
4949
http.authorizeRequests()
5050
.antMatchers(HttpMethod.POST, "/auth/**").permitAll()
51-
.antMatchers("/user/**").hasAnyAuthority("USUARIO")
52-
.antMatchers("/sistema/**").hasAnyAuthority("SISTEMA")
51+
.antMatchers("**/user/**").hasAnyAuthority("USUARIO")
52+
.antMatchers("**/sistema/**").hasAnyAuthority("SISTEMA")
5353
.antMatchers(
5454
"/v2/api-docs", "/swagger-resources/**", "/swagger-ui.html", "/webjars/**",
5555
"/swagger.json")

testeSantanderWay/src/main/java/br/com/testesantanderway/config/security/ServicoDeToken.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66
import io.jsonwebtoken.Jwts;
77
import io.jsonwebtoken.SignatureAlgorithm;
88
import org.springframework.beans.factory.annotation.Value;
9-
import org.springframework.boot.actuate.trace.http.HttpTrace;
109
import org.springframework.security.core.Authentication;
1110
import org.springframework.stereotype.Service;
1211

testeSantanderWay/src/main/java/br/com/testesantanderway/controller/AuthController.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ public ResponseEntity<TokenDTO> sistemaLogin(@RequestBody AuthForm form) {
3737

3838
@PostMapping
3939
public ResponseEntity<TokenDTO> login(@RequestBody AuthForm form) {
40-
UsernamePasswordAuthenticationToken dadosLogin = form.ciarAutenticacaoUsuario();
40+
UsernamePasswordAuthenticationToken dadosLogin = form.criarAutenticacaoUsuario();
4141
try {
4242
Authentication authentication = authManager.authenticate(dadosLogin);
4343
String token = servicoDeToken.gerarToken(authentication, "USUARIO");

testeSantanderWay/src/main/java/br/com/testesantanderway/controller/GastoController.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,8 @@
1616
import org.springframework.web.bind.annotation.*;
1717

1818
import javax.servlet.http.HttpServletRequest;
19-
import java.time.LocalDate;
19+
import java.time.LocalDateTime;
20+
import java.time.format.DateTimeFormatter;
2021
import java.util.List;
2122

2223
@RestController
@@ -51,7 +52,8 @@ public Page<GastoDTO> filtro(HttpServletRequest request,
5152
@PathVariable String dataCriacao,
5253
@PageableDefault(sort = "dataCriacao", direction = Sort.Direction.DESC) Pageable paginacao) {
5354
String codigoUsuario = servicoDeToken.getCodigo(AutenticacaoViaTokenFilter.recuperarToken(request));
54-
return GastoDTO.converter(gastoService.encontrarGastosDoDia(codigoUsuario, LocalDate.parse(dataCriacao), paginacao));
55+
return GastoDTO.converter(gastoService.encontrarGastosDoDia(codigoUsuario,
56+
LocalDateTime.parse(dataCriacao, DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'")), paginacao));
5557
}
5658

5759
//TODO permitir apenas USUARIO categorizar gasto

testeSantanderWay/src/main/java/br/com/testesantanderway/controller/form/AuthForm.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ public void setSenha(String senha) {
2424
this.senha = senha;
2525
}
2626

27-
public UsernamePasswordAuthenticationToken ciarAutenticacaoUsuario() {
27+
public UsernamePasswordAuthenticationToken criarAutenticacaoUsuario() {
2828
return new UsernamePasswordAuthenticationToken(email, senha, Arrays.asList(() -> "USUARIO"));
2929
}
3030

testeSantanderWay/src/main/java/br/com/testesantanderway/repository/GastoRepository.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,15 +6,14 @@
66
import org.springframework.data.domain.Pageable;
77
import org.springframework.data.solr.repository.SolrCrudRepository;
88

9-
import java.util.Date;
109
import java.util.List;
1110
import java.util.Optional;
1211

1312
public interface GastoRepository extends SolrCrudRepository<Gasto, String>{
14-
List<Gasto> findByCodigoUsuarioAndDataCriacaoAfter(String codigoUsuario, Date dataCriacao);
13+
List<Gasto> findByCodigoUsuarioAndDataCriacaoAfter(String codigoUsuario, String dataCriacao);
1514

1615
@Cacheable("gastoUsuario")
17-
Page<Gasto> findByCodigoUsuarioAndDataCriacaoBetween(String codigoUsuario, Date inicio, Date fim, Pageable paginacao);
16+
Page<Gasto> findByCodigoUsuarioAndDataCriacaoBetween(String codigoUsuario, String inicio, String fim, Pageable paginacao);
1817

1918
@Cacheable("categoria")
2019
Optional<String> findCategoriaByDescricao(String descricao);

testeSantanderWay/src/main/java/br/com/testesantanderway/service/GastoService.java

Lines changed: 15 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,10 @@
77
import org.springframework.data.domain.Pageable;
88
import org.springframework.stereotype.Service;
99

10-
import java.sql.Date;
11-
import java.time.*;
10+
import java.time.LocalDateTime;
11+
import java.time.ZoneOffset;
12+
import java.time.ZonedDateTime;
13+
import java.time.format.DateTimeFormatter;
1214
import java.util.List;
1315
import java.util.Optional;
1416

@@ -25,30 +27,31 @@ public void lancar(Gasto gasto) {
2527

2628
public List<Gasto> listarGastosMaisRecentes(String codigoUsuario) {
2729
ZonedDateTime ultimosCincoSegundos = ZonedDateTime.now().minusSeconds(5);
28-
return gastoRepository.findByCodigoUsuarioAndDataCriacaoAfter(codigoUsuario, Date.from(ultimosCincoSegundos.toInstant()));
30+
return gastoRepository.findByCodigoUsuarioAndDataCriacaoAfter(codigoUsuario, ultimosCincoSegundos.format(DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'")));
2931
}
3032

31-
public Page<Gasto> encontrarGastosDoDia(String codigoUsuario, LocalDate dia, Pageable paginacao){
32-
ZonedDateTime inicio = dia.atStartOfDay(ZoneOffset.UTC).plusSeconds(1);
33-
ZonedDateTime fim = dia.plusDays(1).atStartOfDay(ZoneOffset.UTC).minusSeconds(1);
34-
return gastoRepository.findByCodigoUsuarioAndDataCriacaoBetween(codigoUsuario, Date.from(inicio.toInstant()), Date.from(fim.toInstant()), paginacao);
33+
public Page<Gasto> encontrarGastosDoDia(String codigoUsuario, LocalDateTime dia, Pageable paginacao) {
34+
ZonedDateTime inicio = dia.toLocalDate().atStartOfDay(ZoneOffset.UTC).plusSeconds(1);
35+
ZonedDateTime fim = dia.toLocalDate().plusDays(1).atStartOfDay(ZoneOffset.UTC).minusSeconds(1);
36+
return gastoRepository.findByCodigoUsuarioAndDataCriacaoBetween(codigoUsuario, inicio.format(DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'")),
37+
fim.format(DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'")), paginacao);
3538
}
3639

3740
public void categorizarGasto(Gasto gasto) {
3841
Optional<Gasto> categoriaASerAlterada = gastoRepository.findById(gasto.getCodigoUsuario());
39-
if(!categoriaASerAlterada.isPresent() || categoriaASerAlterada.get().getCategoria() != null){
42+
if (!categoriaASerAlterada.isPresent() || categoriaASerAlterada.get().getCategoria() != null) {
4043
throw new IllegalArgumentException("Operação não permitida");
4144
}
4245
categoriaASerAlterada.get().setCategoria(gasto.getCategoria());
4346
gastoRepository.save(categoriaASerAlterada.get());
4447
}
4548

46-
private void integrarCategoria(Gasto gasto){
47-
if(gasto.getCategoria() == null){
49+
private void integrarCategoria(Gasto gasto) {
50+
if (gasto.getCategoria() == null) {
4851
Optional<String> categoria = gastoRepository.findCategoriaByDescricao(gasto.getDescricao());
49-
if(categoria.isPresent()){
52+
if (categoria.isPresent()) {
5053
gasto.setCategoria(categoria.get());
5154
}
5255
}
5356
}
54-
}
57+
}

testeSantanderWay/src/main/resources/docker-entrypoint.sh

Whitespace-only changes.

testeSantanderWay/src/main/resources/solr-cores/sistemas/conf/managed-schema

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
<?xml version="1.0" encoding="UTF-8"?>
22
<!-- Solr managed schema - automatically generated - DO NOT EDIT -->
33
<schema name="default-config" version="1.6">
4-
<uniqueKey>codigo</uniqueKey>
5-
<fieldType name="_nest_path_" class="solr.NestPathField" maxCharsForDocValues="-1" omitNorms="true" omitTermFreqAndPositions="true" stored="false"/>
4+
<uniqueKey>id</uniqueKey>
5+
<fieldType name="_nest_path_" class="solr.NestPathField" omitTermFreqAndPositions="true" omitNorms="true" maxCharsForDocValues="-1" stored="false"/>
66
<fieldType name="ancestor_path" class="solr.TextField">
77
<analyzer type="index">
88
<tokenizer class="solr.KeywordTokenizerFactory"/>
@@ -442,13 +442,12 @@
442442
<field name="_root_" type="string" docValues="false" indexed="true" stored="false"/>
443443
<field name="_text_" type="text_general" multiValued="true" indexed="true" stored="false"/>
444444
<field name="_version_" type="plong" indexed="false" stored="false"/>
445-
<field name="categoria" type="text_general"/>
446-
<field name="codigo" type="string"/>
447-
<field name="codigoSistema" type="string"/>
448-
<field name="codigoUsuario" type="string"/>
445+
<field name="codigo" type="text_general"/>
449446
<field name="dataCriacao" type="pdates"/>
450-
<field name="descricao" type="text_general"/>
451-
<field name="valor" type="pdoubles"/>
447+
<field name="email" type="text_general"/>
448+
<field name="id" type="string" multiValued="false" indexed="true" required="true" stored="true"/>
449+
<field name="nome" type="text_general"/>
450+
<field name="senha" type="text_general"/>
452451
<dynamicField name="*_txt_en_split_tight" type="text_en_splitting_tight" indexed="true" stored="true"/>
453452
<dynamicField name="*_descendent_path" type="descendent_path" indexed="true" stored="true"/>
454453
<dynamicField name="*_ancestor_path" type="ancestor_path" indexed="true" stored="true"/>
@@ -517,6 +516,8 @@
517516
<dynamicField name="*_f" type="pfloat" indexed="true" stored="true"/>
518517
<dynamicField name="*_d" type="pdouble" indexed="true" stored="true"/>
519518
<dynamicField name="*_p" type="location" indexed="true" stored="true"/>
520-
<copyField source="descricao" dest="descricao_str" maxChars="256"/>
521-
<copyField source="categoria" dest="categoria_str" maxChars="256"/>
519+
<copyField source="senha" dest="senha_str" maxChars="256"/>
520+
<copyField source="codigo" dest="codigo_str" maxChars="256"/>
521+
<copyField source="nome" dest="nome_str" maxChars="256"/>
522+
<copyField source="email" dest="email_str" maxChars="256"/>
522523
</schema>

0 commit comments

Comments
 (0)