401 Несанкционированная ошибка в Spring Security - PullRequest
1 голос
/ 08 мая 2020

Я новичок в Spring boot и Spring Security, и у меня возникает эта ошибка:

"ошибка 401 Unauthorized (c .elsecurity.jwt.AuthEntryPointJwt: Unauthorized error: Full authentication требуется для доступа к этому ресурсу)"

Я пробовал это руководство по аутентификации и регистрации (https://bezkoder.com/spring-boot-jwt-authentication/?unapproved=2080&moderation-hash=102a62e22b4c04ad25fce7fd2c3617a3#comment -2080 ) и пользовательский интерфейс администратора (https://www.javaguides.net/2020/01/spring-boot-angular-9-crud-example-tutorial.html ) , и он работает как нужно . Но когда я добавляю этот грубый учебник в приложение для аутентификации и регистрации, чтобы получить полное приложение, я получаю эту ошибку: «Несанкционированная ошибка: требуется полная аутентификация. для доступа к этому ресурсу ».

У меня проблема в том, что когда я успешно вошел в систему, я хочу сделать запрос на получение списка пользователей. запрос, который я отправляю, является защищенным запросом GET, который составляет http://localhost: 8084 / loginsystem / api / list / employee этот запрос отправляется моим Angular интерфейсом. Но мой Теперь проблема в том, что Spring Boot сообщает мне, что пользователь не авторизован, и отправляет ошибку 401. Я отправляю токен авторизации, когда делаю запрос из интерфейса в серверную часть.

Любая помощь, пожалуйста, я не смог решить эту проблему, я пробовал все решения, и это не решило проблему.

это ПОМ. XML Файл

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" 
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>2.1.13.RELEASE</version>
		<relativePath/> <!-- lookup parent from repository -->
	</parent>
	<groupId>com.example</groupId>
	<artifactId>loginsystem</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<name>loginsystem</name>
	<description>loginsystem projet mvc</description>

	<properties>
	    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
		<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
		<java.version>1.8</java.version>
	</properties>

	<dependencies>
	
	 <dependency>
    <groupId>org.modelmapper</groupId>
    <artifactId>modelmapper</artifactId>
    <version>2.3.5</version>
</dependency>
	
	    
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-data-jpa</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-security</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
		</dependency>

		<dependency>
			<groupId>mysql</groupId>
			<artifactId>mysql-connector-java</artifactId>
			<scope>runtime</scope>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-test</artifactId>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-actuator</artifactId>
		</dependency>

		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-devtools</artifactId>
			<scope>runtime</scope>
		</dependency>
		<dependency>
			<groupId>org.springframework.security</groupId>
			<artifactId>spring-security-test</artifactId>
			<scope>test</scope>
		</dependency>
		<dependency>
	<groupId>io.jsonwebtoken</groupId>
	<artifactId>jjwt</artifactId>
	<version>0.9.1</version>
    </dependency>
    
     <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-search-engine</artifactId>
            <version>5.6.1.Final</version>
            <exclusions>
                <exclusion>
                    <groupId>org.jboss.logging</groupId>
                    <artifactId>jboss-logging</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.hibernate/hibernate-search-orm -->
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-search-orm</artifactId>
            <version>5.6.1.Final</version>
            <exclusions>
                <exclusion>
                    <groupId>org.jboss.logging</groupId>
                    <artifactId>jboss-logging</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
	
        
	</dependencies>

	<build>
		<plugins>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
			</plugin>
		</plugins>
	</build>

</project>

Это результат, когда я запускаю приложение в eclipse: введите здесь описание изображения

Это архитектура полной приложение на eclipse:

Архитектура

Это результат почтальона: Результат почтальона

, и это результат на браузер (внешняя сторона): Результат браузера

header in postman

the authorization tab in postman

1 Ответ

0 голосов
/ 22 мая 2020

вопрос решен Я добавил этот код в метод configure () в класс webSecurityConfig

.antMatchers("/**").hasAnyRole("ADMIN","USER","MODERATOR").anyRequest().authenticated().and()
			
			.logout()
			.invalidateHttpSession(true)
			.clearAuthentication(true)
			.logoutRequestMatcher(new AntPathRequestMatcher("/logout"))
			.logoutSuccessUrl("/login?logout")
			.permitAll();
http.addFilterBefore( authenticationJwtTokenFilter(),  UsernamePasswordAuthenticationFilter.class);
...