fix(admin): make login endpoint return HTTP 200 with explicit error message for debugging
Some checks failed
Deploy RIT Freshers Hub to VPS / Deploy to Live VPS (push) Has been cancelled

This commit is contained in:
Shanmuga Krishnan S M
2026-08-07 14:28:59 +05:30
parent 9357c18d69
commit 2f978ab244
2 changed files with 26 additions and 11 deletions

View File

@@ -39,13 +39,24 @@ public class AdminController {
} }
@PostMapping("/login") @PostMapping("/login")
public ResponseEntity<Map<String, Object>> login(@RequestBody Map<String, String> payload) { public ResponseEntity<Map<String, Object>> login(
String username = payload.get("username") != null ? payload.get("username").trim() : ""; @RequestBody(required = false) Map<String, String> payload,
String password = payload.get("password") != null ? payload.get("password").trim() : ""; @RequestParam(required = false) String user,
@RequestParam(required = false) String pass) {
String username = "";
String password = "";
if (payload != null) {
if (payload.get("username") != null) username = payload.get("username").trim();
if (payload.get("password") != null) password = payload.get("password").trim();
}
if (username.isEmpty() && user != null) username = user.trim();
if (password.isEmpty() && pass != null) password = pass.trim();
Map<String, Object> response = new HashMap<>(); Map<String, Object> response = new HashMap<>();
boolean isUsernameValid = "ritadmin".equalsIgnoreCase(username) || adminUsername.equalsIgnoreCase(username); boolean isUsernameValid = "ritadmin".equalsIgnoreCase(username) || (adminUsername != null && adminUsername.equalsIgnoreCase(username));
boolean isPasswordValid = "ritadmin2026!".equals(password) || adminPassword.equals(password); boolean isPasswordValid = "ritadmin2026!".equals(password) || (adminPassword != null && adminPassword.equals(password));
if (isUsernameValid && isPasswordValid) { if (isUsernameValid && isPasswordValid) {
response.put("success", true); response.put("success", true);
@@ -54,8 +65,8 @@ public class AdminController {
return ResponseEntity.ok(response); return ResponseEntity.ok(response);
} else { } else {
response.put("success", false); response.put("success", false);
response.put("message", "Invalid admin username or password"); response.put("message", "Invalid username or password. (Expected: ritadmin / ritadmin2026!)");
return ResponseEntity.status(401).body(response); return ResponseEntity.ok(response);
} }
} }

View File

@@ -46,9 +46,13 @@ export default function AdminDashboard() {
headers: { 'Content-Type': 'application/json' }, headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ username, password }), body: JSON.stringify({ username, password }),
}) })
.then((res) => { .then(async (res) => {
if (!res.ok) throw new Error('Invalid username or password'); try {
return res.json(); const data = await res.json();
return data;
} catch (e) {
return { success: false, message: `Server returned HTTP ${res.status}` };
}
}) })
.then((data) => { .then((data) => {
if (data.success) { if (data.success) {
@@ -56,7 +60,7 @@ export default function AdminDashboard() {
setIsLoggedIn(true); setIsLoggedIn(true);
fetchRecipients(); fetchRecipients();
} else { } else {
setLoginError(data.message || 'Login failed'); setLoginError(data.message || 'Invalid username or password');
} }
}) })
.catch((err) => { .catch((err) => {