CORs предотвращает доступ к доступу и поиску данныхJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 CORs предотвращает доступ к доступу и поиску данных

Сообщение Anonymous »

Я пытаюсь настроить новый проект на основе работающего существующего проекта. Я не смог получить подключение к базе данных для работы через JDBC. Я не получаю никаких ошибок, просто пустой результат списка. Я знаю, что в настройке базы данных есть что -то шаткое, потому что я получал ошибку, что боб для названного параметра -дюймптата не была найдена. В предыдущем проекте я определил информацию об подключении к базе данных в приложении-default.properties, что было достаточно, чтобы позволить Spring забрать и использовать. Тем не менее, чтобы решить проблему, я добавил боб в файл веб -службы/конфигурации. Это решило эту проблему, позволяя базе данных, по крайней мере, подключаться. Я знаю, что подключение работает, потому что, если я намеренно ошибаюсь с именем таблицы/столбца, я получаю ошибку SQL, что она не может найти таблицу. Поскольку он находит таблицу, я не могу понять, что предотвращает возвращение данных. Я не только не могу определить базу данных в приложении.@Slf4j
@Repository
public class TestRepository {
private final String FIND_ALL_QUERY =
"SELECT " +
" test.ids AS id, " +
" test.value AS value " +
"FROM test_table test ";

@Autowired
private NamedParameterJdbcTemplate namedParameterJdbcTemplate;

@Autowired
private DataSource dataSource;

@Transactional
public List findAll() {
log.info("running query...");
return this.namedParameterJdbcTemplate.query(FIND_ALL_QUERY, BeanPropertyRowMapper.newInstance(TestDto.class));
}
}
< /code>
Веб -безопасность: < /p>
@Slf4j
@PropertySource("classpath:application.properties")
@Configuration
@EnableWebSecurity
public class SecurityConfig {
@Bean
public SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
log.info("In securityFilterChain");

http.csrf().disable().authorizeHttpRequests().anyRequest().permitAll();

return http.build();
}

@Bean
public DataSource dataSource() {
DriverManagerDataSource ds = new DriverManagerDataSource();
ds.setDriverClassName("oracle.jdbc.OracleDriver");
ds.setUrl("jdbc:oracle:thin:@localhost:1521");
ds.setUsername("c##redacted");
ds.setPassword("redacted");
return ds;
}

@Bean
public NamedParameterJdbcTemplate namedParameterJdbcTemplate() {
return new NamedParameterJdbcTemplate(dataSource());
}
}
< /code>
application.properties:
spring.datasource.url=jdbc:oracle:thin:@localhost:1521
spring.datasource.username=c##redacted
spring.datasource.password=redacted
spring.datasource.driver-class-name=oracle.jdbc.OracleDriver

spring.datasource.hikari.maxLifetime=60000
< /code>
Реализация службы: < /p>
@Slf4j
@RequiredArgsConstructor
@Service
public class TestServiceImpl implements TestService {
@Autowired
private TestRepository testRepository;

public List findAll() {
List test = testRepository.findAll();
log.info("test.size(): ", test.size());
log.info("test.get(0): ", test.get(0));
return test;
}
}

Таблица базы данных:

output:
2025-05-24 13:16:05 INFO campaign.controller.TestController - findingAll...
2025-05-24 13:16:05 INFO campaign.repository.TestRepository - running query...
2025-05-24 13:16:05 INFO c.serviceimpl.TestServiceImpl - test.size():
2025-05-24 13:16:05 INFO c.serviceimpl.TestServiceImpl - test.get(0):
< /code>
Редактировать: это все еще может быть проблемой с CORS. Я не знаю, как дана реконфигурация, которую я сделал в веб -сайте, чтобы удалить все, что связано с аутентификацией и CORS. Тем не менее, я получаю эту ошибку в веб -консоли: < /p>
Access to XMLHttpRequest at 'http://127.0.0.1:8080/archlands/api/test/value' from origin 'http://localhost:4200' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource.
< /code>
testdto (совместно с помощью запроса из комментария): < /p>
@Data
@ToString
@RequiredArgsConstructor
@AllArgsConstructor
@Entity
public class TestDto {
private Long id;
private String value;

@Override
public boolean equals(Object checkObject) {
Boolean usersAreEqual = false;
if (this == checkObject) {
usersAreEqual = true;
} else if (checkObject == null || Hibernate.getClass(this) != Hibernate.getClass(checkObject)) {
usersAreEqual = false;
} else { // correct type, check values
TestDto checkUser = (TestDto) checkObject;
if (id != null) {
usersAreEqual = Objects.equals(id, checkUser.id);
}
}
return usersAreEqual;
}

@Override
public int hashCode() {
return getClass().hashCode();
}
}


Подробнее здесь: https://stackoverflow.com/questions/796 ... -retrieval
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»