@Configuration
@EnableWebSecurity
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.authorizeRequests()
.antMatchers("/", "/home").permitAll()
.anyRequest().authenticated()
.and()
.formLogin()
.loginPage("/login")
.permitAll()
.and()
.logout()
.permitAll();
}
@Autowired
public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
auth
.inMemoryAuthentication()
.withUser("user").password("password").roles("USER");
}
}
Meine JS-Datei:Löschen nicht funktioniert
$scope.del = function (record) {
if (confirm('Do you really want to delete?')){
$http['delete']('/camera/list/' + record.filename).then(function() {
$scope.records.splice($scope.records.indexOf(record), 1);
});
}
};
Meine löschen Controller:
@RequestMapping(value = "/list/{fn}", method = RequestMethod.DELETE, produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<Record> deleteUser(@PathVariable("fn") String filename) {
System.out.println("Fetching & Deleting data " + filename);
Record user1 = rep.findByfilename(filename);
if (user1 == null) {
System.out.println("Unable to delete." + filename + " not found");
return new ResponseEntity<Record>(HttpStatus.NOT_FOUND);
}
rep.deleteByfilename(filename);
return new ResponseEntity<Record>(HttpStatus.NO_CONTENT);
}
}
Mein Repository:
public interface RecordRepository extends MongoRepository<Record, String> {
@Query("{ 'filename' : ?0 }")
Record findByfilename(String filename);
long deleteByfilename(String filename);
}
Wenn ich auf Löschtaste, Es zeigt mir diesen Fehler:
DELETE
XHR
http://localhost:8086/camera/list/2fb1a2e020285cd91dc68a4fa7822151 [HTTP/1.1 403 Forbidden 14ms]
Jeder weiß, was ist der Fehler? Am Anfang funktionierte mein Löschen, aber als ich die Federsicherheit verwendete, funktioniert mein Löschen nicht.
zeigen Sie uns Ihre Federsicherheitszugriffseinstellungen. – MaVVamaldo
Wo sind die Zugriffseinstellungen? Entschuldigung zuerst mein Löschen kann arbeiten, nachdem ich Frühlingssicherheit verwende und das Löschen überhaupt nicht arbeiten kann. –
Wenn Sie die Federsicherheit überhaupt nicht kennen, empfehle ich Ihnen, vor der Verwendung ein grundlegendes Tutorial zu suchen. In der Regel hat es eine Konfigurations-XML-Datei (wahrscheinlich kann es auch Annotation-konfiguriert sein), wo Sie Ihre Sicherheitsanweisungen setzen können. Schauen Sie [hier] (http://www.mkyong.com/tutorials/spring-security-tutorials/) und [hier] (https://dzone.com/refcardz/expression-based-authorization). Meine Vermutung ist, dass Sie eine Autorisierungsregel für das DELETE-Verb eingeben sollten, das dieser URL zugeordnet ist. Siehe den Link, auf den ich hingewiesen habe, um zu verstehen, wie. – MaVVamaldo